Textview 设置selector

来源:互联网 发布:陈子豪cf手游刷枪软件 编辑:程序博客网 时间:2024/05/18 13:09

先说下要求:碰到一个问题就是如何实现当按下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....");
              }
          });


1 0