Android Selector和Shape的使用方法
程序员文章站
2023-12-01 20:17:34
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>
效果图:
参考:
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
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>
效果图:
参考:
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
推荐阅读
-
MySQL中的LOCATE和POSITION函数使用方法
-
Mybatis分页插件PageHelper的配置和简单使用方法(推荐)
-
android中Invalidate和postInvalidate的更新view区别
-
android 键盘事件和屏幕事件的运行原理及交互实现
-
Android搜索框(SearchView)的功能和用法详解
-
Android搜索框(SearchView)的功能和用法详解
-
Android UI实时预览和编写的各种技巧
-
Android检测Cursor泄漏的原理以及使用方法
-
android编程开发之全屏和退出全屏的实现方法
-
Android编程实现图片的浏览、缩放、拖动和自动居中效果