android如何使用資源文件定義的顏色


講到使用資源文件,必然有兩種方式,一種是在xml中引用,一種是在代碼里引用。

例如:我們在xml中定義了如下兩種顏色,在xml文件中引用的話,很簡單的,使用@color/drakblue即可。

<resources>
    <color name="weakyellow">#ee9c16</color>
    <color name="darkblue">#445f74</color>
</resources>

但是如果在代碼中引用呢?

我是相當長一段時間沒有在代碼中引用過資源文件了,今天偶爾引用一下,竟然試了好一段時間,才把顏色調正常。

最開始我是這樣定義的:

colors = new Integer[]{Color.CYAN,Color.DKGRAY,Color.BLUE,Color.GREEN,Color.LTGRAY,Color.MAGENTA,Color.BLACK,Color.RED,Color.YELLOW,Color.WHITE,R.color.weakyellow,R.color.darkblue};

其中前面用的是系統自帶的color,因為系統本身就提供了10種顏色,到第11種和12種時候,只能自己定義了,於是出現了前邊我定義的那兩種顏色,寫數組的時候,順其自然的模仿前面的形式來了個:

R.clor.darkblue

看上去形式還蠻搭,測試的時候發現無論怎樣,后兩個顏色顯示的都是一種純色,完全跟我定義的無關。

怎么能這樣定義呢?完全是忘了基本概念,“R.clor.darkblue”是什么意思?同學們?
它代表的是資源值,每個resources里邊的內容都會在R文件中生成一個唯一的ID值,這跟顏色毫無關系!
再舉個例子,使用
textView.setText(R.string.me)

這樣對么?里邊是int值,哪里是你要的string喲!

好了,正確的方法應該是耳熟能詳的這樣子滴。。。拜拜~

colors = new Integer[]{Color.CYAN,Color.DKGRAY,Color.BLUE,Color.GREEN,Color.LTGRAY,Color.MAGENTA,Color.BLACK,Color.RED,Color.YELLOW,Color.WHITE,getResources().getColor(R.color.weakyellow),getResources().getColor(R.color.darkblue)};
getResources().getColor(R.color.darkblue)


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM