本文实例讲述了Android使用selector修改TextView中字体颜色和背景色的方法。分享给大家供大家参考,具体如下:

android中的selector大家都很熟悉了,用它可以很方便的实现,控件在不同的动作中,颜色等值的变化。这里我说一下TextView中的一些应用。

我想大家都知道,Button按钮在源码上看是一种特殊的TextView,所以我们很多时候,按钮全是使用的TextView来完成,只要加一个android:clickable="true"就可以了。

TextView在使用selector时,会有两种情况,一种就是正常的在TextView控件上来判断按下,焦点等动作的判断,另一种则是TextView外层控件的这些动作,然后将动作传回TextView.

一,正常的在TextView控件上来判断按下,焦点等动作的判断

这种相对简单,一般要修改控件的背景色和文字色,我们要用到两个xml文件。代码如下:

tbackground.xml 修改背景

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

这里要说明一点,大家看到了,我把默认时的背景图片(颜色)给注了,这是为什么呢,因为你把这条放在最前面,无论什么时候,它都会最先运行,它运行完了,程序就不会再往下运行了,所以下面写的全都没有了。如果你想设置默认值,请把这行代码,放到最下面。

ttextcolor.xml 修改文字

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

文字的修改我就把默认值,放到了最后,这里也要说一下,背景我们要用android:drawable而文字的颜色要使用android:color,不然会报错,为什么?大家想想。哈哈。。。。

二,TextView外层控件的这些动作,然后将动作传回TextView.

这种情况也常出现,我们一般会在外层加一个LinearLayout或是RelativeLayout。而我们会把点击的事件,给这个外层控件。这时候,你要修改的就是外层控件的背景,和TextView控件的文字颜色。这个时候,我们还用上面的方式,你会发现,TextView没有反应,为什么,因为它没有得到事件,这个时候,会用到一个属性就是android:duplicateParentState

它的官方解释是”如果设置此属性,将直接从父容器中获取绘图状态(光标,按下等)。 注意仅仅是获取绘图状态,而没有获取事件,也就是你点一下LinearLayout时Button有被点击的效果,但是不执行点击事件“。看下面的代码:

        

我们在修改外层控件背景的同时,也在修改 TextView文字的颜色.

希望本文所述对大家Android程序设计有所帮助。

更多相关文章

  1. Android(安卓)Intent的简介以及属性的详解
  2. Android之GridLayout用法
  3. Android(安卓)自定义日期控件 (仿QQ,IOS7)
  4. 自动完成可编辑文本AutoCompleteTextView的使用
  5. Android(安卓)对话框控件
  6. android仿iPhone滚轮控件实现及源码分析(一)
  7. android 利用shape做控件背景(小圆点,空心带边框背景)
  8. Android的Widget编写实例
  9. 【Android(安卓)界面效果15】Android(安卓)UI 之一步步教你自定

随机推荐

  1. Android(安卓)4.0 开发者指南(28) —— R
  2. RxJava教程(四)在Android中使用RxJava
  3. ArcGIS for Android地图控件的5大常见操
  4. Android(安卓)JNI/Hardware 加载(二)
  5. 2.7-2 Android(安卓)studio gradle 文件
  6. Android(安卓)学习笔记 1
  7. 开始android的HelloWorld
  8. Android操作蓝牙
  9. Android传感器---Environment Sensor
  10. Android(安卓)Studio 自带模拟器获取root