Android 颜色设置:透明度换算
简介
#开头色值
Android中的颜色值通常遵循RGB/ARGB标准,使用时通常以“#”字符开头,以16进制表示。比如程序中用到的:android:textColor=”#F8FF00” , 常用的颜色值格式为:
#RGB #ARGB #RRGGBB #AARRGGBB
其中,ARGB 依次代表透明度(alpha)、红色(red)、绿色(green)、蓝色(blue)。
以颜色值 #FF99CC00 为例,其中,FF 是透明度,99 是红色值, CC 是绿色值, 00 是蓝色值。
代码中的色值
在android中经常看到设置的颜色为八位的十六进制的颜色值,例如:
public static final class color { public static final int lightblue=0x7f040000;}
或者在 Java 中
textView.setTextColor(0xffff00f);
说明:
0xffff00ff 是 int 类型的数据,分组一下 0x|ff|ff00ff,0x 表示颜色整数的标记,ff表示透明度,ff00ff表示色值,注意:0x后面ffff00ff必须是8位的颜色表示。
颜色和不透明度 (alpha) 值以十六进制表示法表示。任何一种颜色的值范围都是 0到 255(00到 ff)。
对于 alpha,00表示完全透明,ff表示完全不透明。
表达式顺序是”aabbggrr”,其中”aa=alpha”(00到ff);”bb=blue”(00到ff);”gg=green”(00到ff);”rr=red”(00到ff)。
透明度
透明度分为256阶(0-255),计算机上用16进制表示为(00-ff)。透明就是0阶,不透明就是255阶,如果50%透明就是127阶(256的一半当然是128,但因为是从0开始,所以实际上是127)。
透明度 和 不透明度 是两个概念, 它们加起来是1,或者100%.
ARGB 中的透明度alpha,表示的是不透明度。依据来自维基百科中的定义。
换算
在开发过程中,UI/UE给的标注图上,所有颜色值是RGB,但是透明度经常都是百分比,例如:颜色值:#FFFFFF,透明度40%。
使用过程中我们需要进行换算。以之前的值为例,换算过程如下:
将透明度转换成不透明度(转换方式参考“透明度”,第2条) 。 不透明度为60%
不透明度乘以255。 我们得到结果:153
将计算结果转换成16进制。得到最终的不透明度:99
将不透明度和颜色值拼接成ARGB格式。得到最终的颜色值: #99FFFFFF
常用不透明度对应十六进制值
100%— FF 95% — F2 90% — E6 85% — D9 80% — CC 75% — BF 70% — B3 65% — A6 60% — 99 55% — 8C 50% — 80 45% — 73 40% — 66 35% — 59 30% — 4D 25% — 40 20% — 33 15% — 26 10% — 1A 5% — 0D 0% — 00
更多相关文章
- view的clickable属性和点击background颜色改变
- Android修改原生RatingBar颜色、大小,以及自定义的样式
- android设置edittext光标的颜色
- Android资源文件 - 使用资源存储字符串 颜色 尺寸 整型 布尔值
- Android 颜色渲染(五) LinearGradient线性渲染
- android4.0系统点击后颜色-浅蓝色
- Android根据属性值自定义改变图片颜色
- Android MenuItem 设置文字颜色-TextColor的设置
- Android hex RGB 各种颜色值 colors.xml