使用selector修改TextView中字体的颜色

2017-04-16 00:27:31

[html] view plain copy

  1.   



selector想必大家都用过了,但是在修改字体的颜色的时候还是要细心。

我们在TextView中设置字体颜色一般使用 

Android:textColor="@color/red"

但是我们在使用selector动态修改字体颜色的时候要使用

[html] view plain copy

  1. android:color="@color/red"  



我遇到这个问题的时候是在TabActivity中,每个Tab在选中的时候修改为蓝色。

tab_item.xml的代码如下:

[html] view plain copy

  1. <?xml version="1.0" encoding="utf-8"?>  

  2. <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"  

  3.     android:id="@+id/ll_software_tabwidget_item"  

  4.     android:layout_width="fill_parent"  

  5.     android:layout_height="fill_parent"  

  6.     android:gravity="center_horizontal"  

  7.     android:orientation="vertical" >  

  8.   

  9.    <ImageView  

  10.         android:id="@+id/iv_software_tabwidget_icon"  

  11.         android:layout_width="30dip"  

  12.         android:layout_height="30dip"  

  13.         android:layout_marginBottom="1dip"  

  14.         android:layout_marginTop="5dip"  

  15.         android:scaleType="fitXY" />  

  16.   

  17.     <TextView  

  18.         android:id="@+id/tv_software_tabwidget_text"  

  19.         android:layout_width="wrap_content"  

  20.         android:layout_height="wrap_content"  

  21.         android:layout_marginBottom="5dip"  

  22.         android:textColor="@drawable/software_textcolor"  

  23.         android:textSize="14dip" />  

  24.       

  25. </LinearLayout>  


注意android:textColor="@drawable/software_textcolor",即software_textcolor.xml就是selector,源码如下:


[html] view plain copy

  1. <?xml version="1.0" encoding="utf-8"?>  

  2. <selector xmlns:android="http://schemas.android.com/apk/res/android" >  

  3.   

  4.     <item android:state_selected="true" android:color="@color/software_textColor_selected"></item>  

  5.     <item android:state_selected="false" android:color="@color/software_textColor_unselected"></item>  

  6.   

  7. </selector>  


这个文件中就是要注意的地方了,必须使用android:color="@color/software_textColor_selected",不能使用android:textColor属性。


另附color.xml的源码如下:

[html] view plain copy

  1. <?xml version="1.0" encoding="utf-8"?>  

  2. <resources>  

  3.   

  4.     <color name="software_textColor_selected">#FF1C94EA</color>  

  5.     <color name="software_textColor_unselected">#FFDCE0DF</color>  

  6.       

  7. </resources>  



  • 2020-06-02 08:57:12

    clipboard复制成功但是粘贴板是空的

    将文本复制到剪贴板应该不难。配置它不需要几十个步骤,也不需要加载数百KB的js文件 。但最重要的是,它不应该依赖Flash或任何臃肿的框架。这就是clipboard.js存在的原因。

  • 2020-06-04 13:54:21

    vue生成的__ob__: Observer无法解析jsonp

    computed 从vuex获得数据,watch监听数据 然而问题就出现在了监听上,监听不到,给个setTimeOut 1000 就能检测到数据了,不然打印时又数据,用的时候时空的,不知道时什么原因。

  • 2020-06-06 20:22:56

    laravel 接收json串

    在做项目的时候发现 用平时的$request->all() 无法获取到请求值

  • 2020-06-09 08:50:28

    LRU原理以及js实现

    LRU(Least recently used,最近最少使用)算法根据数据的历史访问记录来进行淘汰数据,其核心思想是“如果数据最近被访问过,那么将来被访问的几率也更高”。

  • 2020-06-20 06:31:16

    mac下全局配置adb环境

    不提示“command not found”,而是出现一长串帮助说明,那就证明adb已经配置好了。

  • 2020-06-20 06:31:39

    Android 无线调试手机(WiFi 调试)

    手机需要开启 USB 调试 手机和电脑要在同一个局域网(连接同一个 WiFi) adb connect 连接成功后要拔出 USB 线,不然出现同时连接两个设备的问题 执行命令 ”adb tcpip 6666“ 后可能需要重新开启 USB 调试

  • 2020-08-16 16:09:30

    android WebView 注入js 几种方式

    有时我们开发中需要将js 注入到我们本地,有可能你会说,放在Web不就可以了吗,的确,但是需求就是这样的