天天看點

Android中動态的更改selector中某張圖檔的屬性

在我們平常開發的時候會有許多狀态按鈕,比如state_pressed,android:state_checked,或者就正常狀态等等,我們做這樣的效果通常需要三個檔案,一張是按下的圖檔,一張是正常狀态的圖檔,一張是管理它們的selector檔案,如果在不斷更新疊代的過程中出現了很多這樣的按鈕,而且它們的顔色什麼的都不一樣,那我們的res/drawable檔案夾下就會出現很多個這樣的組合檔案,導緻我們的程式越來越大、越來越大,這肯定不是我們想看到的。

那麼,我現在要拿出什麼來解決這個問題呢?就是動态的更改它們的屬性,把所有的工作都放在代碼裡面,減少selector.xml檔案的産生:

我們在寫屬性的時候盡量要使用這樣的方式(如果美工給了圖的話,盡量讓提供顔色值就可以了,不要做那麼多圖):

布局檔案:

這個xml檔案的正常顯示效果是:

Android中動态的更改selector中某張圖檔的屬性

效果還是挺不錯的,接下來我們要動态改變它的效果,怎麼做呢:

方法就是這樣,我們再來看看最後的實作效果:

Android中動态的更改selector中某張圖檔的屬性

怎麼樣,效果實作了我們需要的。

最後,貼上一個抽取出來的工具類:

有疑問歡迎留言。

繼續閱讀