[置顶] Android selector设置详解

Android 中的selector常用来设置背景,可以很方便的根据checked,selected等不同状态设置不同背景,不需要自己在Java代码设置了,简单,优雅!

相信selector设置背景色大家都很熟悉了,这里介绍两个最近总结的一些技巧。

  1. 背景色和文字颜色的设置

       类似微信的底部导航,点击不同的底部按钮,会显示选中的图片,同时文字也会变色,背景图片用selector很容易实现了,那么文字呢 ?需要自己用代码去设置吗?NO!文字也可以用selector来实现!

在res/color文件夹下,设置tab_color_seletor文件,具体内容为:

<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">

  <!-- 单击选中时字体颜色-->
 <item android:state_pressed="true" android:color="@color/white" />
  <!-- 滚动选中时字体颜色-->
 <item android:state_checked="true" android:color="@color/white" />
  <!-- 默认字体颜色-->
 <item android:color="@color/black" />
</selector>

 这样设置导航的TextView的textColor为 tab_color_seletor 即可实现上述想要实现的效果

  2. 只设置背景的底部边框



 想要达到这种效果,点击不同tab标签时,对应的底部出现蓝色横线,怎么实现?

这里就要借助layer-list了。
这里在选中的时候,layer-list先是设置整个背景为蓝色,然后又覆盖了一层白色,但是底部留了2dp的距离,这样就把蓝色显示出来了
具体代码如下:
<selector xmlns:android="http://schemas.android.com/apk/res/android">

   <item android:state_checked="true">
      <layer-list>        
         <item>
            <shape>
               <solid android:color="@color/blue" />
            </shape>
         </item>
         <!-- This is the line  note:这里的bottom相当于margin_bottom-->
         <item android:bottom="2dp">
            <shape>
               <solid android:color="#FFFFFF" />
            </shape>
         </item>

      </layer-list>
   </item>
    <item android:drawable="@color/white"/>

</selector>
 

  • 大小: 3.4 KB
发布了61 篇原创文章 · 获赞 9 · 访问量 11万+

猜你喜欢

转载自blog.csdn.net/fly_yuge/article/details/50384938
今日推荐