У меня есть меню, содержащее элемент со значком, который поставляется с sdk (из skd/platform/...). В ICS он отображается нормально (темная панель действий, светлый значок), но в Android 2.2 вы не видите значок, потому что тема по умолчанию белая, как и значок. Есть ли способ получить доступ к значкам Android по умолчанию, например, при использовании панели поиска значок отображается правильно на всех версиях Android? Есть ли способ получить доступ к значкам Android по умолчанию?
Значки ActionBar/Menu по умолчанию
Ответы (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);
Примечание. Вы должны проверить, являются ли значки, которые вы собираетесь использовать, общими для всех платформ, чтобы обеспечить единообразную и безошибочную работу для ваших пользователей.
Да, здесь есть пункт меню, использующий значок настроек/настроек 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.*< /а>
Сначала добавьте 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>