Tint(着色器)的兼容實現


我們在做控件的時候可以使用tint這個屬性給控件上色,這樣在很多情況下能減少不同色彩的資源色彩。在MD設計中,控件顏色隨着主體改變也是一大要點,今天我們就來看看如何使用它。

使用步驟:1.建立一個控件;2.使用ViewCompat.setBackgroundTintList

      // 第一種實現
        ColorStateList cl = new ColorStateList(new int[][]{new int[0]}, new int[]{0xffffcc00});
        ViewCompat.setBackgroundTintList(pasteEt, cl);
        // 第二種實現
        ViewCompat.setBackgroundTintList(pasteEt, getResources().getColorStateList(R.color.red));

這里的colorstateList是什么東西呢,如果做過屬性定制的同學一定見過它,它就是一個color的xml文件,這里的color我用了最簡單的定義方式:

<color name="red">#ff0000</color>

我們有時候還會像selector一樣定義不同狀態下的顏色,最終這些xml文件最終解析轉為的東西就是colorStateList對象啦,這個對象保存了狀態和不同狀態下的演示值。

 

 

參考自:

http://segmentfault.com/a/1190000003038675?utm_source=Weibo&utm_medium=shareLink&utm_campaign=socialShare

http://stackoverflow.com/questions/27735890/lollipops-backgroundtint-has-no-effect-on-a-button


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM