Android 计算颜色的透明度
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Android 计算颜色的透明度相关的知识,希望对你有一定的参考价值。
参考技术A 设计师给效果图时透明度一般都是标注为百分比,如:#000000透明度为50%,我们就要把50%转换为程序里使用的16进制才能使用。那么50%透明度该如果计算为16进制呢?因为透明度分为256阶(0 ~ 255),在计算机上用16进制表示为(00 ~ ff),透明就是0阶,不透明就是255阶,如果50%透明就是127阶(256的一半为128,但我们是从0开始计数的,所以实际上是127)。
10进制255换算为16进制是ff,127换算成16进制是7f,因此 #7f000000 就是代表透明度为50%的黑色
下面以#000000的透明度给出计算公式:
<i>ps:计算结果取整</i>
Android XML 中的颜色不透明度
【中文标题】Android XML 中的颜色不透明度【英文标题】:Color opacity in Android XML 【发布时间】:2013-11-08 23:06:21 【问题描述】:Android 颜色代码是 8 位十六进制代码,例如 #ff123456。前 2 位数字用于不透明度,其余为通用 RGB 颜色代码。并且不透明度值是可选的,假设它是 0xff。
我的问题是,对于给定的颜色值,说:
<color name="vivid_red">#ffff0000</color>
或者
<color name="vivid_red">#ff0000</color>
我可以通过引用颜色值vivid_red
来设置不透明度为 50% 的颜色,还是应该定义不同的颜色代码,而它们的 RGB 部分都相同,但只有不透明度部分不同?
【问题讨论】:
【参考方案1】:如果是 XML,它将只能通过元素名称来区分您在使用中的含义,除非您有一些其他代码可以解析特定 name
属性的 color
元素。
所以,
<color name="vivid_red">#ff0000</color>
和
<color name="vivid_red_half_trans">#80ff0000</color>
【讨论】:
以上是关于Android 计算颜色的透明度的主要内容,如果未能解决你的问题,请参考以下文章