概述
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)步。。