Android 如何设置ActionBar背景

Android 如何设置ActionBar背景,android,background,android-actionbar,Android,Background,Android Actionbar,我只想做一个白色背景的动作栏,底部有一个1px的红色边框。我怎样才能做到这一点 注: 我试过使用9-patch,但红线总是有一些梯度,但我不想要任何梯度。这是我的9号贴片(T:透明,B:黑色,W:白色,R:红色): 作为一种最佳实践,我应该定义一个包含两个矩形的单独xml吗?您不需要九块补丁。您可以在XML中定义一个可绘制文件,如下所示: <?xml version="1.0" encoding="utf-8"?> <layer-list xmlns:android="http

我只想做一个白色背景的动作栏,底部有一个1px的红色边框。我怎样才能做到这一点

注: 我试过使用9-patch,但红线总是有一些梯度,但我不想要任何梯度。这是我的9号贴片(T:透明,B:黑色,W:白色,R:红色):


作为一种最佳实践,我应该定义一个包含两个矩形的单独xml吗?

您不需要九块补丁。您可以在XML中定义一个可绘制文件,如下所示:

<?xml version="1.0" encoding="utf-8"?>
<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
    <item>
        <shape android:shape="rectangle">
            <solid android:color="#FF0000" />
        </shape>
    </item>
    <item android:bottom="2dp">
        <shape android:shape="rectangle">
            <solid android:color="#FFFFFF" />
        </shape>
    </item>
</layer-list>


然后只需使用getActionBar().setBackgroundDrawable(getResources().getDrawable(R.drawable.mydrawable))

你需要梯度吗?我不想要任何梯度。虽然我并没有在9-patch中的红点旁边设置任何黑色的“拉伸线”,但它会以某种方式延伸。也许因为补丁太小了。。。
<?xml version="1.0" encoding="utf-8"?>
<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
    <item>
        <shape android:shape="rectangle">
            <solid android:color="#FF0000" />
        </shape>
    </item>
    <item android:bottom="2dp">
        <shape android:shape="rectangle">
            <solid android:color="#FFFFFF" />
        </shape>
    </item>
</layer-list>