Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/188.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android ActionBar样式问题_Android_Android Actionbar - Fatal编程技术网

Android ActionBar样式问题

Android ActionBar样式问题,android,android-actionbar,Android,Android Actionbar,我想为操作栏中显示的菜单项设置自定义背景。我发现我可以通过将以下项目添加到我的应用程序主题样式定义中来实现这一点: <item name="android:actionBarItemBackground">@drawable/actionbar_button</item> 但是,这会导致背景图像也呈现在ActionBar左侧显示的自定义应用程序徽标后面。经过几次尝试,我找到了一个只包含按钮的选择器,我想到了这个: <selector xmlns:andro

我想为
操作栏中显示的菜单项设置自定义背景。我发现我可以通过将以下项目添加到我的应用程序主题样式定义中来实现这一点:

    <item name="android:actionBarItemBackground">@drawable/actionbar_button</item>
但是,这会导致背景图像也呈现在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块图形(即按钮背景)的填充区域。加载完成后,背景将被关闭,但缩放和裁剪仍然存在,看起来非常难看。如何解决此问题?

尚未找到将基于图像的背景设置为ActionBar按钮的一般问题的有效解决方案,但如果使用输入的基于XML的背景,例如使用形状的
图层列表创建的背景,则不会发生缩放/裁剪。在某些情况下,在中可能不可行,但在我的情况下,这是完全可能的,甚至可能比使用基于位图的资源更好

<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>