Значки ActionBar/Menu по умолчанию

У меня есть меню, содержащее элемент со значком, который поставляется с sdk (из skd/platform/...). В ICS он отображается нормально (темная панель действий, светлый значок), но в Android 2.2 вы не видите значок, потому что тема по умолчанию белая, как и значок. Есть ли способ получить доступ к значкам Android по умолчанию, например, при использовании панели поиска значок отображается правильно на всех версиях Android? Есть ли способ получить доступ к значкам Android по умолчанию?


person fanboy555    schedule 23.01.2013    source источник


Ответы (3)


Если вы определяете свое меню в XML, то что-то вроде этого гарантирует, что значки всегда выбираются из соответствующих рисунков SDK.

<item
    android:id="@+id/menuID"
    android:icon="@android:drawable/ic_menu_add"
    android:showAsAction="always"
    android:title="Some Label">
</item>

Если вы добавляете свои пункты меню в свой код Java, это должно сделать что-то вроде этого:

menu.add(1, 1, 1, "Some Label").setIcon(android.R.drawable.ic_menu_add);

Примечание. Вы должны проверить, являются ли значки, которые вы собираетесь использовать, общими для всех платформ, чтобы обеспечить единообразную и безошибочную работу для ваших пользователей.

person Siddharth Lele    schedule 23.01.2013

Да, здесь есть пункт меню, использующий значок настроек/настроек Android в качестве значка.

<item
    android:id="@+id/menu_settings"
    android:icon="@android:drawable/ic_menu_preferences"
    android:orderInCategory="100"
    android:showAsAction="always|withText"
    android:title="@string/menu_settings"/>

Полный список значков см. в документации по классу R.drawable.

http://developer.android.com/reference/android/R.drawable.html

Для приложения, которое просматривает все значки, см. Как просмотреть изображения R.drawable.*< /а>

person Justin Mclean    schedule 23.01.2013
comment
Спасибо, есть ли способ увидеть каждую иконку? - person fanboy555; 23.01.2013
comment
Как называется настройка или значок, который выглядит так: . . . - person fanboy555; 23.01.2013

Сначала добавьте actionOverFlowButtonStyle в свою основную тему.

 <style name="AppTheme" parent="AppBaseTheme">

        <item name="android:actionOverflowButtonStyle">@style/MyActionButtonOverflow</item>
    </style>

Определите новый стиль для кнопки действия над потоком

<style name="MyActionButtonOverflow" parent="android:style/Widget.Holo.Light.ActionButton.Overflow">
    <item name="android:src">@drawable/ic_menu</item>
</style>
person Null Pointer Exception    schedule 09.03.2018