Android 使用代碼設(shè)置selector 的圖片或文字顏色

通常selector 都是在drawable/color文件夾中定義好瀑焦,但有時候一些特殊需求需要我們動態(tài)通過代碼去更改,這個時候就要用到StateListDrawable 和 ColorStateList 了,這兩個分別是設(shè)置圖片和顏色的類

1俊犯、對不同狀態(tài)的控件設(shè)置不同的圖片(StateListDrawable)

通常我們在設(shè)置不同狀態(tài)下圖片不同時是這么寫的:比如checkBox

a招狸、定義一個selector文件

<?xml version= "1.0" encoding="utf-8">

<selector xmlns:android="http://schemas.android.com/apk/res/android">

? ? ? ? ? ?<item android:drawable="@drawable/ic_toolbar_huabuwan_selected" ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? android:state_checked="true"/>

? ? ? ? ? ? <item android:drawable="@drawable/ic_toolbar_huabuwan_normal" ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? android:state_checked="false"/>

</selector>

b、然后設(shè)置給checkBox

<CheckBox??

?android:layout_height="wrap_content"?

android:layout_width="wrap_content"??

android:background="@drawable/selector_check"/>

這是在圖標沒有定死的情況下老速,如果圖標是要動態(tài)替換則需要通過下面這種方式了

2、通過代碼動態(tài)設(shè)置圖標

/**

* 設(shè)置底部tab圖標

* @paramradioButton控件

* @paramdrawableNormal常態(tài)時的圖片

* @paramdrawableSelect選中時的圖片

*/

public void setSelectorDrawable(CheckBox cbButton,Drawable drawableNormal,Drawable drawableSelect){

? ? ? ? ? ? ? ? ? StateListDrawable drawable =newStateListDrawable();

? ? ? ? ? ? ? ? ?//選中

? ? ? ? ? ? ? ? ?drawable.addState(new int[]{android.R.attr.state_checked},drawableSelect);

? ? ? ? ? ? ? ? ?//未選中

? ? ? ? ? ? ? ? ?drawable.addState(new int[]{-android.R.attr.state_checked},drawableNormal);

? ? ? ? ? ? ? ? ?cbButton.setBackgroundDrawable(drawable);

}

同理selector的顏色也是如此設(shè)置凸主,設(shè)置顏色的類是ColorStateList

/**

* 設(shè)置底部tab文字顏色

* @paramradioButton控件

* @paramnormal正常時的顏色值

* @paramchecked選中時的顏色值

*/

public void setSelectorColor(RadioButton radioButton,intnormal,intchecked){

? ? ? ? ? ? ? int[] colors =new int[] { normal, checked,normal};

? ? ? ? ? ? ? int[][] states =new int[3][];

? ? ? ? ? ? ? states[0] =new int[] { -android.R.attr.state_checked};

? ? ? ? ? ? ? states[1] =new int[] { android.R.attr.state_checked};

? ? ? ? ? ? ? states[2] =new int[] {};

? ? ? ? ? ? ? ColorStateList colorStateList =newColorStateList(states,colors);

? ? ? ? ? ? ? radioButton.setTextColor(colorStateList);

}

注意:-android.R.attr.state_checked 和 android.R.attr.state_checked 的區(qū)別在于 “-” 號代表值里的true 和 false ,有“-”為false 沒有則為true

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末烁峭,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子秕铛,更是在濱河造成了極大的恐慌,老刑警劉巖缩挑,帶你破解...
    沈念sama閱讀 212,884評論 6 492
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件但两,死亡現(xiàn)場離奇詭異,居然都是意外死亡供置,警方通過查閱死者的電腦和手機谨湘,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,755評論 3 385
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來芥丧,“玉大人紧阔,你說我怎么就攤上這事⌒#” “怎么了擅耽?”我有些...
    開封第一講書人閱讀 158,369評論 0 348
  • 文/不壞的土叔 我叫張陵,是天一觀的道長物遇。 經(jīng)常有香客問我乖仇,道長,這世上最難降的妖魔是什么询兴? 我笑而不...
    開封第一講書人閱讀 56,799評論 1 285
  • 正文 為了忘掉前任乃沙,我火速辦了婚禮,結(jié)果婚禮上诗舰,老公的妹妹穿的比我還像新娘警儒。我一直安慰自己,他們只是感情好眶根,可當我...
    茶點故事閱讀 65,910評論 6 386
  • 文/花漫 我一把揭開白布蜀铲。 她就那樣靜靜地躺著,像睡著了一般汛闸。 火紅的嫁衣襯著肌膚如雪蝙茶。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 50,096評論 1 291
  • 那天诸老,我揣著相機與錄音隆夯,去河邊找鬼钳恕。 笑死,一個胖子當著我的面吹牛蹄衷,可吹牛的內(nèi)容都是我干的忧额。 我是一名探鬼主播,決...
    沈念sama閱讀 39,159評論 3 411
  • 文/蒼蘭香墨 我猛地睜開眼愧口,長吁一口氣:“原來是場噩夢啊……” “哼睦番!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起耍属,我...
    開封第一講書人閱讀 37,917評論 0 268
  • 序言:老撾萬榮一對情侶失蹤托嚣,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后厚骗,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體示启,經(jīng)...
    沈念sama閱讀 44,360評論 1 303
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 36,673評論 2 327
  • 正文 我和宋清朗相戀三年领舰,在試婚紗的時候發(fā)現(xiàn)自己被綠了夫嗓。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 38,814評論 1 341
  • 序言:一個原本活蹦亂跳的男人離奇死亡冲秽,死狀恐怖舍咖,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情锉桑,我是刑警寧澤排霉,帶...
    沈念sama閱讀 34,509評論 4 334
  • 正文 年R本政府宣布,位于F島的核電站民轴,受9級特大地震影響郑诺,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜杉武,卻給世界環(huán)境...
    茶點故事閱讀 40,156評論 3 317
  • 文/蒙蒙 一辙诞、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧轻抱,春花似錦飞涂、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,882評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至容燕,卻和暖如春梁呈,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背蘸秘。 一陣腳步聲響...
    開封第一講書人閱讀 32,123評論 1 267
  • 我被黑心中介騙來泰國打工官卡, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留蝗茁,地道東北人。 一個月前我還...
    沈念sama閱讀 46,641評論 2 362
  • 正文 我出身青樓寻咒,卻偏偏與公主長得像哮翘,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子毛秘,可洞房花燭夜當晚...
    茶點故事閱讀 43,728評論 2 351

推薦閱讀更多精彩內(nèi)容