Textview 设置selector


先说下要求:碰到一个问题就是如何实现当按下TextView的时候字体能变颜色,松开之后又能恢复原来的颜色。自己开始想到的方法是设置TextView的onTouchListener,当按下时改变字体的颜色,松开时还原自己的颜色。虽然这种方法可以实现我的需求,但是这样代码似乎写的有点臃肿。后面又找到一种新的方法,在这里记录同时分享下:
      1,在res/color 文件夹中建立textview_selector,定义如下:
             
<? xml   version =   "1.0"   encoding   = "utf-8" ?>
< selector   xmlns:android = "http://schemas.android.com/apk/res/android"   >
      < item   android:state_pressed   = "true"   android:color = "@android:color/holo_blue_dark"   />
      < item   android:color   = "@android:color/black"   />
</ selector >
      2,引用的方式有两种,一种是在xml中引用:
     < TextView
          android:id =   "@+id/test_tv"
          android:layout_height = "wrap_content"
          android:layout_width =   "wrap_content"
          android:textColor =   "@color/textview_selector"
          android:text =   "@string/app_name"
          android:textSize =   "40sp" />
          另外一种是在代码中设置:
          TextView underlineTextView = (TextView) findViewById(R.id. test_tv   );
          underlineTextView.setTextColor(getResources().getColorStateList   (R.color.   textview_selector ));
          underlineTextView. setOnClickListener( new   OnClickListener() {
              
                 @Override
                 public   void   onClick(View arg0) {
                   Log. d( TAG ,   "onClicked...." );
              }
          });


猜你喜欢

转载自blog.csdn.net/sd_zhuzhipeng/article/details/48439739