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

來源:互聯網
上載者:User

標籤:

講到使用資源檔,必然有兩種方式,一種是在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)

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

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.