Android 中的selector常用来设置背景,可以很方便的根据checked,selected等不同状态设置不同背景,不需要自己在Java代码设置了,简单,优雅!
相信selector设置背景色大家都很熟悉了,这里介绍两个最近总结的一些技巧。
? ? ? ?类似微信的底部导航,点击不同的底部按钮,会显示选中的图片,同时文字也会变色,背景图片用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标签时,对应的底部出现蓝色横线,怎么实现?
<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>?
原文:http://fly-ccy.iteye.com/blog/2260773