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