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文字的颜色.


更多相关文章

  1. Android界面布局基本知识简述
  2. Android(安卓)第十七天
  3. Android上鲜为人知的UI控件介绍和使用
  4. 7、从头学Android之TextView控件
  5. Android中的控件
  6. adroid风格和主题
  7. Android全埋点方案调研
  8. Android(安卓)Design与Holo Theme详解
  9. Android之布局属性重点

随机推荐

  1. Android中安装,启动和卸载应用
  2. Android(安卓)USB debugging 功能失效
  3. 2011.07.18(2)——— android Animation的
  4. 仿UC底部菜单栏实例源码
  5. 在Android上创建一个PopupWindow
  6. Android开发7:单元测试
  7. Android开发神贴整理
  8. 在sd卡存储文件
  9. Android(安卓)Support Package 支撑包
  10. Android获得全局进程信息以及进程使用的