Android Selector和Shape的使用方法

 更新时间:2013年06月08日 16:25:26   作者:  
本文介绍下背景选择器、文字颜色选择器、背景渐变器的实现。结合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>

效果图:
 
参考:
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

相关文章

  • Android开发实现简单计算器功能

    Android开发实现简单计算器功能

    这篇文章主要为大家详细介绍了Android开发实现简单计算器,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2021-06-06
  • 详解android 中animation-list 动画的应用

    详解android 中animation-list 动画的应用

    本篇文章主要介绍了详解android 中animation-list 动画的应用,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2017-12-12
  • FFmpeg Principle分析Out put File 数据结构

    FFmpeg Principle分析Out put File 数据结构

    这篇文章主要为大家介绍了FFmpeg Principle分析Out put File 数据结构,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2022-10-10
  • Android监控和阻断InputDispatching ANR的方法

    Android监控和阻断InputDispatching ANR的方法

    如何在Java层实现异步监控和阻断InputDispatching ANR?我相信这是很多开发者都想要的功能,本篇,我们会通过“探索”两种方案来实现在Java层监控&阻断的方法,需要的朋友可以参考下
    2024-04-04
  • Android编程实现EditText字数监听并显示的方法

    Android编程实现EditText字数监听并显示的方法

    这篇文章主要介绍了Android编程实现EditText字数监听并显示的方法,涉及Android EditText文本框事件监听与响应相关操作技巧,需要的朋友可以参考下
    2017-02-02
  • Android Studio多渠道打包、自定义打包APK名称

    Android Studio多渠道打包、自定义打包APK名称

    Android Studio为我们提供了简便的方法,可以多渠道打包,一次打包所有的渠道包。这篇文章主要介绍了Android Studio多渠道打包、自定义打包APK名称,需要的朋友可以参考下
    2018-01-01
  • Android 绘制太极图实例详解

    Android 绘制太极图实例详解

    本文主要介绍了 Android 绘制太极图实例的资料,这里提供了实例代码及实现效果图,需要的小伙伴可以参考下
    2016-12-12
  • Android12 蓝牙适配的实现步骤

    Android12 蓝牙适配的实现步骤

    本文主要介绍了Android12 蓝牙适配的实现步骤,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2022-04-04
  • Android利用Theme自定义Activity间的切换动画

    Android利用Theme自定义Activity间的切换动画

    这篇文章主要为大家详细介绍了Android利用Theme自定义Activity间的切换动画,感兴趣的小伙伴们可以参考一下
    2016-09-09
  • android MediaRecorder实现录屏时带录音功能

    android MediaRecorder实现录屏时带录音功能

    这篇文章主要介绍了android MediaRecorder录屏时带录音功能实现代码,本文通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2020-04-04

最新评论