2013-05-15 5 views
0

Я хочу иметь настраиваемый фон для пунктов меню, отображаемых в ActionBar. Я узнал, что я могу сделать это, добавив следующий элемент в мое приложение определения темы стиля:Проблемы с дизайном Android ActionBar

<item name="android:actionBarItemBackground">@drawable/actionbar_button</item> 

Где actionbar_button.xml содержит:

<selector xmlns:android="http://schemas.android.com/apk/res/android"> 
    <item android:drawable="@drawable/action_btn_on" android:state_pressed="true" /> 
    <item android:drawable="@drawable/action_btn_off" /> 
</selector> 

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

<selector xmlns:android="http://schemas.android.com/apk/res/android"> 
    <item android:drawable="@drawable/action_btn_on" android:state_pressed="true" android:state_enabled="true" /> 
    <item android:drawable="@drawable/action_btn_off" android:state_pressed="false" android:state_enabled="true"/> 
    <item android:drawable="@android:color/transparent"/> 
</selector> 

Какой-то работал, и после того, как приложение нагрузки полностью фон позади логотипа является прозрачным, как я хочу , Но проблема в том, что пока она по-прежнему загружается, на короткое время отображается логотип с фоном кнопки за ним и более раздражающе, он масштабирует и обрезает логотип, чтобы поместиться внутри области заполнения графического файла с 9 патчами, который является фоном кнопки. При завершении загрузки фон отключается, но масштабирование и обрезка остаются, что выглядит довольно уродливо. Как я могу это исправить?

ответ

1

Не нашли рабочего решения для общей проблемы установки фоновых изображений на кнопки ActionBar, но масштабирование/обрезка не происходит, если я использую введенные фоновые рисунки на основе XML, например, созданные с фигурами layer-list. В некоторых случаях это может быть нежизнеспособным, но в моем случае это было вполне возможно и, возможно, даже лучше, чем использование ресурса, основанного на растровых изображениях.

Смежные вопросы