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