2

Моя цель состоит в том, чтобы панель действий была красного цвета, но поскольку мои единственные опции из библиотеки Android по умолчанию были белого и черного, я пробовал настроить Это. Я сделал некоторые пользовательские красные значки, используя ведро для рисования на gimp, чтобы просто заполнить белые значки и повторно сохранить его под другим именем. Я сделал то же самое с пиктограммой переполнения, но по какой-то причине это намного больше, чем мои другие значки, чего я не хочу.Значок пользовательского переполнения слишком велик (с использованием android.support.v7 и AppCompat)

Я использую android:minSdkVersion="15" и targetSdkVersion 21 и библиотеку поддержки (в частности, android.support.v7). Моя деятельность расширяет android.support.v7.app.ActionBarActivity и содержит фрагмент, заполняющий всю деятельность. Но мой значок переполнения больше, чем другие, но я хочу, чтобы иметь тот же размер:

enter image description here

Я знаю, что это является правильным выбором значка, потому что они оба голубые. Это должно измениться по-другому, но я не знаю почему? На самом деле у меня есть 5 различных значков увеличенного изображения в drawable-hdpi, drawable-mdpi, drawable-xhdpi, drawable-xxhdpi и drawable-xxxhdpi, поэтому я вижу, является ли проблема неправильным значком.

Когда я использую стандартные значки, которые приходят с @style/Widget.AppCompat.Light.ActionBar.Solid.Inverse родительской темы, то размеры все выглядят одинаково:

enter image description here

Эксперимент с использованием «более вертикальной» значок:

Использование размера drawable-xxhdpi выглядит следующим образом:

enter image description here

Я тестировал меньшую иконку (drawable-mdpi), помещая ее в drawable и заставляя ее использовать (хотя мой андроид использует значки drawable-xxhdpi), но в любом случае он был взорван до большого размера:

enter image description here

Вот мой пользовательский код темы, которые я использовал:

<style name="NGT48Theme" 
      parent="@style/Theme.AppCompat.Light.DarkActionBar"> 
     <item name="android:actionBarStyle">@style/NGT48ActionBar</item> 
     <item name="android:windowBackground">@color/white</item> 
     <item name="actionBarStyle">@style/NGT48ActionBar</item> 
     <item name="android:actionOverflowButtonStyle">@style/NGT48Theme.OverFlow</item> 
     <item name="actionOverflowButtonStyle">@style/NGT48Theme.OverFlow</item> 
    </style> 

<!-- ~~~~~~~~~~~~~~~~~~~~ ActionBar styles ~~~~~~~~~~~~~~~~~~~~ --> 
<style name="NGT48ActionBar" 
     parent="@style/Widget.AppCompat.Light.ActionBar.Solid.Inverse"> 
    <item name="android:background">@color/white</item> 
    <item name="background">@color/white</item> 
    <item name="android:titleTextStyle">@style/NGT48ActionBarTitleTextStyle</item> 
    <item name="titleTextStyle">@style/NGT48ActionBarTitleTextStyle</item> 
</style> 

<!-- ~~~~~~~~~~~~~~~~~~~ ActionBar Title Text Styles ~~~~~~~~~~~~~~~ --> 
    <style name="NGT48ActionBarTitleTextStyle" 
      parent="@style/TextAppearance.AppCompat.Widget.ActionBar.Title" 
      > 
     <item name="android:textColor">@color/red_NGT48</item> 
    </style> 


    <!-- ~~~~~~~~~~~~~~~~~~~ Overflow Icon Styles ~~~~~~~~~~~~~~~ --> 
    <style name="NGT48Theme.OverFlow" parent="@style/Widget.AppCompat.ActionButton.Overflow"> 
     <item name="android:src">@drawable/ic_zoom_in_red_48dp</item> 
    </style> 

Редактировать: Вот результаты ответа Ивана. Я загрузил 24dp версии значка, изменил цвет, протестировал его, и он сработал! :)

enter image description here

+0

чтобы выяснить правку этого изображения. –

+0

@CoasMckey, потому что он слишком большой –

+0

вы можете изменить размер значка во всех каталогах –

ответ

4

более [ака переполнение действие] значок, что называется system icon in Google's design spec, и в соответствии со спецификацией, размер должен быть 24dp (в отличие от обычного 48dp из product icon)

Итак, для xxhdpi размер вашей иконы должен быть 72px. Вы также можете проверить оригинальный значок материала.Для appcompat, это расположение ../appcompat-v7/[version]/res/drawable-xxhdpi/abc_ic_menu_moreoverflow_mtrl_alpha.png

PS На самом деле, если вам нужно только изменить цвет кнопки более (и текст, как я вижу из скриншотов), другой вариант просто использовать тонировки для окраски предметов. Appcompat поддерживает его для всех виджетов на Панели инструментов, значки акций не окрашены и имеют альфа-разрешение, что позволяет оттенять.

Использования акций вытяжка значка (т.е. не отменяет) и добавить (я может быть немного ржавым на этом)

// Text color 
<item name="android:textColorPrimary">@color/red</item> 
// Icon color 
<item name="android:textColorSecondary">@color/red</item> 

К вашему ActionBar темы.

+0

спасибо! Я попробовал, и он действительно работает сейчас! Я поставил картинку в своем оригинальном посте, чтобы показать результаты. –

+0

@RockLee не проблема mate :) –

+1

@RockLee Также, проверьте раздел PS ответа, я думаю, что есть более простой способ достижения вашей цели. –

0

Вы можете создать объект изображения в каталоге res, просто выберите; Тип значка: (панель действий и значки вкладок) и тип объекта: (изображение), добавьте свое изображение, и все будет готово. Добавьте свой новый ресурс drawable