如何将边框和背景图像添加到按钮

时间:2013-01-03 15:49:22

标签: android

我正在尝试为按钮添加背景纹理和边框。但是我不能把我的按钮上的东西都拿去。

用这个我有我的背景图片

<item>
 <bitmap android:src="@drawable/button_background" android:tileMode="repeat" />
 </item>

并且我可以有一个边框

<corners android:radius="5dp" />
  <stroke android:width="3px" android:color="#FFFFFF" />

我尝试使用<shape><layer-list>组合它们,但我可以获得边框或背景纹理。

1 个答案:

答案 0 :(得分:5)

9个补丁通常非常适合这种情况(确保在SDK的tools目录中使用draw9patch工具),但是如果你不想创建自己的图形(请记住,你需要制作每个分辨率的几个版本)并且想要使用XML,你可以这样做:

Red button

<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
    <item android:state_pressed="true" >
        <shape>
            <solid
                android:color="#ef4444" />
            <stroke
                android:width="1dp"
                android:color="#992f2f" />
            <corners
                android:radius="3dp" />
            <padding
                android:left="10dp"
                android:top="10dp"
                android:right="10dp"
                android:bottom="10dp" />
        </shape>
    </item>
    <item>
        <shape>
            <gradient
                android:startColor="#ef4444"
                android:endColor="#992f2f"
                android:angle="270" />
            <stroke
                android:width="1dp"
                android:color="#992f2f" />
            <corners
                android:radius="3dp" />
            <padding
                android:left="10dp"
                android:top="10dp"
                android:right="10dp"
                android:bottom="10dp" />
        </shape>
    </item>
</selector>

来源:http://www.dibbus.com/2011/02/gradient-buttons-for-android/