TextView的點擊時背景顏色

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則可以按自己想要的顏色來設置

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章