解決Android自定義view獲取attr中自定義顏色的問題
好久不見,最近有點忙,好久沒有發文章了,前天有個小學弟在寫項目的過程中遇到了這個問題,由此寫一篇文章。
項目場景:
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內容請搜索好吧啦網以前的文章或繼續瀏覽下面的相關文章希望大家以后多多支持好吧啦網!
相關文章: