首页 > 系统 > Android > 正文

Android Selector和Shape的使用方法

2019-10-24 20:50:15
字体:
来源:转载
供稿:网友
本文介绍下背景选择器、文字颜色选择器、背景渐变器的实现。结合Shape来实现背景渐变效果。或者只是以color代替drawable作为背景选择器的元素
 

1.背景选择器(位于res/drawable/,使用方法:android:background=”@drawable/XXX”) 

复制代码代码如下:

<?xml version="1.0" encoding="utf-8"?> 
<selectorxmlns:android="http://schemas.android.com/apk/res/android"> 
<itemandroid:drawable="@drawable/login_blue_pressed" android:state_pressed="true"/> 
<itemandroid:drawable="@drawable/login_blue_pressed"android:state_focused="true"/> 
<itemandroid:drawable="@drawable/login_blue_normal" /> 
</selector> 

2.文字颜色选择器(位于res/color/,使用方法:android:textColor=”@color/XXX”) 
复制代码代码如下:

<?xml version="1.0" encoding="utf-8"?> 
<selectorxmlns:android="http://schemas.android.com/apk/res/android"> 
<itemandroid:color="#ffffff" android:state_pressed="true"/> 
<itemandroid:color="#ffffff" android:state_focused="true"/> 
<item android:color="#000000"/> 
</selector> 

注意:在res/drawable/XXX.xml智能提示时没有android:color,同理在res/color/XXX.xml智能提示时没有android:drawable。 
3.背景渐变器(位于res/color/或res/drawable/) 
res/drawable/selector1.xml: 
复制代码代码如下:

<?xml version="1.0" encoding="utf-8"?> 
<selector xmlns:Android="http://schemas.android.com/apk/res/android"> 
<itemAndroid:state_selected="true"> 
<shape> 
<gradientAndroid:angle="270" android:endColor="#99BD4C" 
android:startColor="#A5D245" /> 
<sizeAndroid:height="60dp" android:width="320dp" /> 
<cornersandroid:radius="8dp" /> 
</shape> 
</item> 
<itemAndroid:state_pressed="true"> 
<shape> 
<gradientAndroid:angle="270" android:endColor="#99BD4C" 
android:startColor="#A5D245"/> 
<sizeAndroid:height="60dp" android:width="320dp" /> 
<cornersandroid:radius="8dp" /> 
</shape> 
</item> 
<item> 
<shape> 
<gradientAndroid:angle="270" android:endColor="#A8C3B0" 
android:startColor="#C6CFCE" /> 
<sizeAndroid:height="60dp" android:width="320dp" /> 
<cornersandroid:radius="8dp" /> 
</shape> 
</item> 
</selector> 

layout/main.xml: 
复制代码代码如下:

<Button 
android:id="@+id/button1" 
android:layout_width="100dp" 
android:layout_height="50dp" 
android:background="@drawable/selector1" 
android:text="button1" /> 

结合Shape来实现背景渐变效果。 
或者只是以color代替drawable作为背景选择器的元素: 
复制代码代码如下:

<?xml version="1.0" encoding="utf-8"?> 
<selector xmlns:Android="http://schemas.android.com/apk/res/android"> 
<itemAndroid:state_selected="true"> 
<shape> 
<solidAndroid:color="#ff0000" /> 
</shape> 
</item> 
<itemAndroid:state_pressed="true"> 
<shape> 
<solidAndroid:color="#ff0000" /> 
</shape> 
</item> 
<item> 
<shape> 
<solidAndroid:color="#00ffff" /> 
</shape> 
</item> 
</selector> 

再或者drawable和color混用(不过注意四角的一致性,因为drawable里可能圆弧型四角): 
复制代码代码如下:

<?xml version="1.0" encoding="utf-8"?> 
<selectorxmlns:Android="http://schemas.android.com/apk/res/android"> 
<itemAndroid:state_selected="true"> 
<shape> 
<solidAndroid:color="#ff0000" /> 
</shape> 
</item> 
<itemAndroid:state_pressed="true"> 
<shape> 
<solidAndroid:color="#ff0000" /> 
</shape> 
</item> 
<itemAndroid:drawable="@drawable/login_blue_normal"> 
</item> 
</selector> 

效果图: 
Android Selector和Shape的使用方法 
参考: 
http://www.shaccp.net/zhishiku/android/220.html 
http://www.cnblogs.com/top5/archive/2012/05/10/2494763.html 
http://blog.csdn.net/wswqiang/article/details/6616306

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表