欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  移动技术

Android Selector和Shape的使用方法

程序员文章站 2023-12-01 20:17:34
1.背景选择器(位于res/drawable/,使用方法:android:background=”@drawable/xxx”) 复制代码 代码如下:

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