我們在做控件的時候可以使用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