解決Android自定義view獲取attr中自定義顏色的問題
好久不見,最近有點(diǎn)忙,好久沒有發(fā)文章了,前天有個(gè)小學(xué)弟在寫項(xiàng)目的過程中遇到了這個(gè)問題,由此寫一篇文章。
項(xiàng)目場(chǎng)景:
Android自定義View在布局中設(shè)置顏色
問題描述: 以下為學(xué)弟的代碼
//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都能獲取到)
分析:
在寫了個(gè)Demo后,確實(shí)有類似問題,自己試了幾種辦法沒有解決,于是看了以下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"
如果搜到這篇文章,希望能夠解決您的問題。
到此這篇關(guān)于Android自定義view獲取attr中自定義顏色的問題的文章就介紹到這了,更多相關(guān)Android自定義view內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Android中activity從創(chuàng)建到顯示的基本介紹
這篇文章主要給大家介紹了關(guān)于Android中activity從創(chuàng)建到顯示的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對(duì)各位Android初學(xué)者們具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起看看吧。2017-11-11深入解讀Android的Volley庫的功能結(jié)構(gòu)
這篇文章主要介紹了Android的Volley開發(fā)框架的功能結(jié)構(gòu),Volley是Android開發(fā)中網(wǎng)絡(luò)部分的一大利器,包含很多HTTP協(xié)議通信的相關(guān)操作,需要的朋友可以參考下2016-05-05Android實(shí)現(xiàn)可復(fù)用的選擇頁面
這篇文章主要為大家詳細(xì)介紹了Android實(shí)現(xiàn)可復(fù)用的選擇頁面,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2019-06-06獲取Activity棧,判斷當(dāng)前Activity位置的方法
下面小編就為大家分享一篇獲取Activity棧,判斷當(dāng)前Activity位置的方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧2018-03-03Android ServiceManager的啟動(dòng)和工作原理
這篇文章主要介紹了Android ServiceManager的啟動(dòng)和工作原理,幫助大家更好的理解和學(xué)習(xí)使用Android開發(fā),感興趣的朋友可以了解下2021-03-03使用科大訊飛語音SDK實(shí)現(xiàn)文字在線合成語音
這篇文章主要介紹了使用科大訊飛語音SDK實(shí)現(xiàn)文字在線合成語音 的相關(guān)資料,需要的朋友可以參考下2015-12-12