给大家分享一下android中通过自定义自定义图形shape的方法设置button的特效:
看这个资源文件:button_script.xml
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:state_pressed="true">
<shape>
<gradient
android:startColor="#ff0000"
android:endColor="#0000ff"
android:angle="90"/>
<stroke
android:width="5dp"
android:color="#00ff00" />
<corners
android:radius="20dp" />
<padding
android:left="150dp" android:top="10dp"
android:bottom="150dp" android:right="10dp" />
</shape>
</item>
</selector>
其中,gradient定义了渐变,分别为开始颜色、结束颜色、和角度。注意,角度只能是90的倍数。
stroke是边缘,分别定义了边缘的宽度和颜色。
corners为拐角,radius定义了半径大小。
padding是其内容的相对位置。
然后在button中引用这个资源文件:android:background="@drawable/button_color"
下面是效果图:
看这个资源文件:button_script.xml
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:state_pressed="true">
<shape>
<gradient
android:startColor="#ff0000"
android:endColor="#0000ff"
android:angle="90"/>
<stroke
android:width="5dp"
android:color="#00ff00" />
<corners
android:radius="20dp" />
<padding
android:left="150dp" android:top="10dp"
android:bottom="150dp" android:right="10dp" />
</shape>
</item>
</selector>
其中,gradient定义了渐变,分别为开始颜色、结束颜色、和角度。注意,角度只能是90的倍数。
stroke是边缘,分别定义了边缘的宽度和颜色。
corners为拐角,radius定义了半径大小。
padding是其内容的相对位置。
然后在button中引用这个资源文件:android:background="@drawable/button_color"
下面是效果图:
![](http://hi.csdn.net/attachment/201111/23/0_13220417545Ss2.gif)