解決Android自定義view獲取attr中自定義顏色的問題
好久不見,最近有點忙,好久沒有發(fā)文章了,前天有個小學弟在寫項目的過程中遇到了這個問題,由此寫一篇文章。
項目場景:
Android自定義View在布局中設置顏色
問題描述: 以下為學弟的代碼
//attrs文件 <attr name="leftcolor" format="color"/> <attr name="rightcolor" format="color"/> //Java文件代碼,獲取顏色 int leftcolor=attrs.getAttributeIntValue("http://schemas.android.com/apk/res-auto","leftcolor",Color.BLACK); int rightcolor=attrs.getAttributeIntValue("http://schemas.android.com/apk/res-auto","rightcolor",Color.WHITE); //布局中 app:leftcolor="@color/colorPrimary" app:rightcolor="#ff0000"
問題:rightcolor能夠獲取到顏色,而left不能獲取到。(寫#ff0000都能獲取到)
分析:
在寫了個Demo后,確實有類似問題,自己試了幾種辦法沒有解決,于是看了以下Android源碼控件,得出解決方案如下
解決方案:
//attrs文件 <attr name="leftcolor" format="reference|color"/> <attr name="rightcolor" format="reference|color"/> //java文件 ---TaiJiView為自定義view名稱 //獲取自定義屬性。 TypedArray ta = context.obtainStyledAttributes(attrs, R.styleable.TaiJiView); //獲取顏色 int leftcolor = ta.getColor(R.styleable.TaiJiView_leftcolor, Color.BLACK); int rightcolor=ta.getColor(R.styleable.TaiJiView_rightcolor, Color.WHITE); //回收 ta.recycle(); //布局中 app:leftcolor="@color/colorPrimary" app:rightcolor="#ff0000"
如果搜到這篇文章,希望能夠解決您的問題。
到此這篇關于Android自定義view獲取attr中自定義顏色的問題的文章就介紹到這了,更多相關Android自定義view內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!
相關文章
Android中activity從創(chuàng)建到顯示的基本介紹
這篇文章主要給大家介紹了關于Android中activity從創(chuàng)建到顯示的相關資料,文中通過示例代碼介紹的非常詳細,對各位Android初學者們具有一定的參考學習價值,需要的朋友們下面隨著小編來一起看看吧。2017-11-11Android ServiceManager的啟動和工作原理
這篇文章主要介紹了Android ServiceManager的啟動和工作原理,幫助大家更好的理解和學習使用Android開發(fā),感興趣的朋友可以了解下2021-03-03