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 破解视频App去除广告功能详解及解决办法总结

    Android 破解视频App去除广告功能详解及解决办法总结

    这篇文章主要介绍了Android 破解视频App去除广告功能详解及解决办法总结的相关资料,这里对视频播放原理及破解去除广告几种方法进行了总结,需要的朋友可以参考下
    2016-12-12
  • Android Toolbar自定义标题标题居中的实例代码

    Android Toolbar自定义标题标题居中的实例代码

    这篇文章主要介绍了Android Toolbar自定义标题 标题居中的实例代码,非常不错,具有一定的参考借鉴价值,需要的朋友可以参考下
    2018-08-08
  • Android屏幕分辨率工具类使用详解

    Android屏幕分辨率工具类使用详解

    这篇文章主要为大家详细介绍了Android屏幕分辨率工具类使用,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2016-09-09
  • Android 修改app图标和名称的方法

    Android 修改app图标和名称的方法

    下面小编就为大家分享一篇Android 修改app图标和名称的方法,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2018-01-01
  • Android如何实现社交应用中的评论与回复功能详解

    Android如何实现社交应用中的评论与回复功能详解

    目前,各种App的社区或者用户晒照片、发说说的地方,都提供了评论功能,为了更好地学习,自己把这个功能实现了一下,下面这篇文章主要给大家介绍了关于Android如何实现社交应用中的评论与回复功能的相关资料,需要的朋友可以参考下
    2018-07-07
  • Android GridView仿微信添加多图效果

    Android GridView仿微信添加多图效果

    这篇文章主要为大家详细介绍了Android GridView仿微信添加多图效果,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2018-05-05
  • Android Camera+SurfaceView自动聚焦防止变形拉伸

    Android Camera+SurfaceView自动聚焦防止变形拉伸

    这篇文章主要为大家介绍了Android自定义相机Camera+SurfaceView实现自动聚焦防止变形拉伸详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2023-01-01
  • Android实战教程第一篇之最简单的计算器

    Android实战教程第一篇之最简单的计算器

    这篇文章主要为大家详细介绍了Android实战教程第一篇,如何实现最简单的计算器,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2016-11-11
  • Android多渠道打包的方法步骤

    Android多渠道打包的方法步骤

    本篇文章主要介绍了Android多渠道打包的方法步骤,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2017-10-10
  • Android编程设置TextView颜色setTextColor用法实例

    Android编程设置TextView颜色setTextColor用法实例

    这篇文章主要介绍了Android编程设置TextView颜色setTextColor用法,结合实例形式分析了Android设置TextView颜色setTextColor、ColorStateList等方法的使用技巧与布局文件的设置方法,需要的朋友可以参考下
    2016-01-01

最新评论