Android Color(顏色)解析

概述

1 任何顏色都是由三原色組成(RGB),即紅綠藍(lán)分量取值介于0-255之間(8位表示)

2 #ffffffff 顏色格式的含義 ; 后三個(gè)分量即RGB顏色模式中的參數(shù),第一個(gè)alpha分量指透明的程度。當(dāng)alpha分量為255時(shí),表示完全不透明,正常顯示;當(dāng)alpha分量為0時(shí),表示完全透明,前三個(gè)分量不起作用,而介于0~255之間的值可以制造出顏色不同的層次效果。

需求

顏色的表示有多種方式,在上一家公司的時(shí)候,有這么一個(gè)需求:要統(tǒng)一管理項(xiàng)目的顏色值,不允許項(xiàng)目中出現(xiàn)用顏色字符串表達(dá)的顏色值,為了后期的項(xiàng)目管理,顏色都要在value的color.xml中維護(hù)??吹竭@么個(gè)需求的時(shí)候瞬間頭大了,這是個(gè)做了幾年的項(xiàng)目,一直在做迭代,項(xiàng)目中的顏色表達(dá)有多種方式,沒有做統(tǒng)一的管理,現(xiàn)在要統(tǒng)一管理起來,那就意味著前面所有的顏色表達(dá)都要修改。。說多了都是淚呀,在做一個(gè)新項(xiàng)目準(zhǔn)備的時(shí)候,一定要考慮好顏色的統(tǒng)一管理,省的后面給自己或者給后來者找麻煩。

代碼

private void initColor() {

        // 得到顏色字符串

        String color_1 = getColorString(this, R.color.color_333333);

        // color_333333 -- > #333333

        int color_2 = this.getResources().getColor(R.color.color_333333);

        int color_3 = Color.parseColor("#333333");

        int color_4 = 0x333333;

        int color_5 = 0xff333333;

        // 使用Color類的靜態(tài)方法argb創(chuàng)建一個(gè)顏色

        int color_6 = Color.argb(255, 51, 51, 51);

        Log.e("zhang", "==== color_1 ====  "+ color_1);

        Log.e("zhang", "==== color_2 ====  "+ color_2);

        Log.e("zhang", "==== color_3 ====  "+ color_3);

        Log.e("zhang", "==== color_4 ====   "+ color_4);

        Log.e("zhang", "==== color_5 ====  "+ color_5);

        Log.e("zhang", "==== color_6 ====  "+ color_6);

    }

// 得到顏色字符串

public String getColorString(Context context, int id){  

         return context.getResources().getString(id);  
 }     

得到log如下

05-10 13:19:59.160 29549-29549/example.zp.zptest E/zhang: ==== color_1 ====  #ff333333  

05-10 13:19:59.160 29549-29549/example.zp.zptest E/zhang: ==== color_2 ====  -13421773  

05-10 13:19:59.160 29549-29549/example.zp.zptest E/zhang: ==== color_3 ====  -13421773  

05-10 13:19:59.160 29549-29549/example.zp.zptest E/zhang: ==== color_4 ====   3355443  

05-10 13:19:59.160 29549-29549/example.zp.zptest E/zhang: ==== color_5 ====  -13421773  

05-10 13:19:59.160 29549-29549/example.zp.zptest E/zhang: ==== color_6 ====  -13421773  

結(jié)論

根據(jù)Log日志可以看到,color_2,color_3,color_5,color_6得到的顏色值是一樣的,顯示效果也是相同的,可以相互替代,具體要用哪一種,就看個(gè)人喜好了。。

如果還有其他方式,歡迎補(bǔ)充一下,共同學(xué)習(xí),共同進(jìn)步。。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • iOS中的顏色有UIColor、CGColor、CIColor三種,下面對(duì)三種顏色分別進(jìn)行說明: 一、常用的UIC...
    lfp901020閱讀 6,863評(píng)論 0 7
  • 接下來我們看Base文件夾下的UIKIt文件夾的內(nèi)容。 1.UIColor+YYAdd 這里看了這個(gè)類,里面有許多...
    充滿活力的早晨閱讀 2,473評(píng)論 0 1
  • 最近這段時(shí)間在搞openGL ES處理視頻和圖像,要進(jìn)行紋理混合,重新溫習(xí)了一下大學(xué)時(shí)候的課本,找了一些資料,把一...
    北冥有貓其名為喵閱讀 34,574評(píng)論 5 19

友情鏈接更多精彩內(nèi)容