我想为显示在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-patch 图形的填充区域。加载完成后,背景被关闭,但缩放和裁剪仍然存在,看起来很丑陋。我该如何解决?