TextView有兩種點擊方式
一種是直接對着TextView這個View設置點擊
一種是對着TextView的文字通過SpannableStringBuilder設置點擊
第一種因爲是對View點擊所以沒有設置的情況下,是不會出現點擊時背景變色的情況
例如:
這裏每一個紅框代表着一個TextView ,然後通過ID設置《用戶協議》與《隱私協議》的點擊事件
這種直接對着View設置點擊事件的情況,在沒有主動去設置點擊時背景變化的時候點擊時不會引起背景的變化的
當然也可以通過Selector來設置點擊時背景變化
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:state_pressed="true" android:drawable="@drawable/dkplayer_seekbar_thumb_pressed"/>
<item android:state_pressed="false" android:drawable="@drawable/dkplayer_seekbar_thumb_normal"/>
<item android:drawable="@drawable/dkplayer_seekbar_thumb_normal"/>
</selector>
第二種則因爲本身TextView的默認屬性HighLightColor,導致點擊時候會出現背景顏色的變化
具體表現是4.0以上是淡綠色,以下是淡黃色
可以通過TextView.setHighLightColor()進行修改
例如
這裏一整個是一個TextView,通過SpannableStringBuilder對文字中《用戶協議》與《隱私政策》修改顏色與設置點擊事件
準確的說是通過SpannableStringBuilder的ClickableSpan進行點擊事件的添加與顏色的修改
new ClickableSpan() {
@Override
public void onClick(View widget) {
//點擊事件
}
@Override
public void updateDrawState( TextPaint ds) {
ds.setColor(getResources().getColor(R.color.text_pink_color));//修改顏色
}
}
這也設置的時候會出現點擊的時候背景顏色改變的情況
這個是因爲TextView本身的mHighLightColor有默認顏色導致的
所以用TextView.setHighLightColor則可以按自己想要的顏色來設置