Android使用selector修改TextView中字體顏色和背景色的方法
本文實例講述了Android使用selector修改TextView中字體顏色和背景色的方法。分享給大家供大家參考,具體如下:
android中的selector大家都很熟悉了,用它可以很方便的實現(xiàn),控件在不同的動作中,顏色等值的變化。這里我說一下TextView中的一些應(yīng)用。
我想大家都知道,Button按鈕在源碼上看是一種特殊的TextView,所以我們很多時候,按鈕全是使用的TextView來完成,只要加一個android:clickable="true"就可以了。
TextView在使用selector時,會有兩種情況,一種就是正常的在TextView控件上來判斷按下,焦點等動作的判斷,另一種則是TextView外層控件的這些動作,然后將動作傳回TextView.
一,正常的在TextView控件上來判斷按下,焦點等動作的判斷
這種相對簡單,一般要修改控件的背景色和文字色,我們要用到兩個xml文件。代碼如下:
tbackground.xml 修改背景
<?xml version="1.0" encoding="utf-8" ?> <selector xmlns:android="http://schemas.android.com/apk/res/android"> <!-- 默認時的背景圖片--> <!--<item android:drawable="@color/white" />--> <!-- 沒有焦點時的背景圖片 --> <item android:state_window_focused="false" android:drawable="@color/white" /> <item android:state_focused="false" android:state_pressed="true" android:drawable="@color/btnbackBlue" /> </selector>
這里要說明一點,大家看到了,我把默認時的背景圖片(顏色)給注了,這是為什么呢,因為你把這條放在最前面,無論什么時候,它都會最先運行,它運行完了,程序就不會再往下運行了,所以下面寫的全都沒有了。如果你想設(shè)置默認值,請把這行代碼,放到最下面。
ttextcolor.xml 修改文字
<?xml version="1.0" encoding="utf-8" ?> <selector xmlns:android="http://schemas.android.com/apk/res/android"> <!-- 沒有焦點時的背景圖片 --> <item android:state_window_focused="false" android:color="@color/black" /> <item android:state_focused="false" android:state_pressed="true" android:color="@color/white" /> <!-- 默認時的背景圖片--> <item android:color="@color/black" /> </selector>
文字的修改我就把默認值,放到了最后,這里也要說一下,背景我們要用android:drawable而文字的顏色要使用android:color,不然會報錯,為什么?大家想想。哈哈。。。。
<TextView
android:id="@+id/txt_collection_cancel"
android:layout_width="0dp"
android:layout_height="fill_parent"
android:layout_weight="1"
android:text="取消"
android:textColor="@drawable/ttextcolor"
android:gravity="center"
android:background="@drawable/tbackground"
android:clickable="true"/>
二,TextView外層控件的這些動作,然后將動作傳回TextView.
這種情況也常出現(xiàn),我們一般會在外層加一個LinearLayout或是RelativeLayout。而我們會把點擊的事件,給這個外層控件。這時候,你要修改的就是外層控件的背景,和TextView控件的文字顏色。這個時候,我們還用上面的方式,你會發(fā)現(xiàn),TextView沒有反應(yīng),為什么,因為它沒有得到事件,這個時候,會用到一個屬性就是android:duplicateParentState
它的官方解釋是”如果設(shè)置此屬性,將直接從父容器中獲取繪圖狀態(tài)(光標(biāo),按下等)。 注意僅僅是獲取繪圖狀態(tài),而沒有獲取事件,也就是你點一下LinearLayout時Button有被點擊的效果,但是不執(zhí)行點擊事件“??聪旅娴拇a:
<RelativeLayout
android:id="@+id/rela_collection_add"
android:layout_width="fill_parent"
android:layout_height="50dp"
android:background="@drawable/tbackground"
android:clickable="true">
<View
android:id="@+id/line_collection_add"
android:layout_width="fill_parent"
android:layout_height="1dp"
android:background="@color/gray"
android:layout_gravity="center_vertical"
android:layout_alignParentBottom="true"
/>
<TextView
android:id="@+id/txt_collection_add"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:text="新建收藏夾"
android:textColor="@drawable/ttextcolor"
android:textSize="@dimen/ActionBar_title_size"
android:duplicateParentState="true"
android:gravity="center"
android:layout_above="@+id/line_collection_add"
/>
</RelativeLayout>
我們在修改外層控件背景的同時,也在修改 TextView文字的顏色.
希望本文所述對大家Android程序設(shè)計有所幫助。
- Android TextView字體顏色設(shè)置方法小結(jié)
- Android中EditText和AutoCompleteTextView設(shè)置文字選中顏色方法
- Android編程實現(xiàn)TextView字體顏色設(shè)置的方法小結(jié)
- Android編程設(shè)置TextView顏色setTextColor用法實例
- Android TextView設(shè)置不同的顏色字體
- Android編程實現(xiàn)TextView部分顏色變動的方法
- Android編程實現(xiàn)TextView部分顏色變動的方法
- Android Textview實現(xiàn)顏色漸變滾動效果
- Android 實現(xiàn)不同字體顏色的TextView實現(xiàn)代碼
- Android中TextView實現(xiàn)分段顯示不同顏色的字符串
相關(guān)文章
Ubuntu中為Android系統(tǒng)實現(xiàn)內(nèi)置Java應(yīng)用程序測試Application Frameworks層的硬件服務(wù)
本文主要介紹Ubuntu中為Android系統(tǒng)內(nèi)置應(yīng)用訪問Application Frameworks層的硬件服務(wù),這里提供了詳細的流程和代碼實例,有興趣的朋友可以參考下2016-08-08
android動態(tài)設(shè)置app當(dāng)前運行語言的方法
下面小編就為大家?guī)硪黄猘ndroid動態(tài)設(shè)置app當(dāng)前運行語言的方法。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2017-03-03
Android圖片選擇器ImageEditContainer
這篇文章主要為大家詳細介紹了Android圖片選擇器ImageEditContainer的相關(guān)資料,具有一定的參考價值,感興趣的小伙伴們可以參考一下2017-07-07
Android Presentation實現(xiàn)雙屏異顯
這篇文章主要為大家詳細介紹了Android Presentation實現(xiàn)雙屏異顯,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下2020-01-01
Android音視頻之視頻采集(系統(tǒng)API預(yù)覽)
這篇文章主要為大家詳細介紹了Android音視頻之視頻采集,系統(tǒng)API預(yù)覽,具有一定的參考價值,感興趣的小伙伴們可以參考一下2018-12-12

