use*_*154 2 android alpha argb
假设我在 android 中将背景颜色设置为 # AF 000000( AA RRGGBB) 。我想要 alpha 通道(AA)的十进制值(0-255),即 175。
如何以编程方式实现这一点?
这是一个纯 Java 解决方案,不使用 Android 特定的getAlpha()方法。
您是否将此值存储在 aString或 an中int?如果您将其放在 a 中String,请首先删除该#字符,然后将其转换为 an int:
String hexString = "#05000000";
int color = Integer.parseInt(hexString.replaceAll("#", ""), 16);
Run Code Online (Sandbox Code Playgroud)
然后我们需要进行一些位操作。这种十六进制颜色表示意味着(在 ARGB 模式下)您拥有值 #AARRGGBB。即每个通道 2 个字节,包括 alpha 通道。为了获得 alpha 通道(AA十六进制值的一部分),我们需要“将其向右推 6 个字节”(Java 是一种Big Endian语言),这样我们就可以得到类似#000000AA. 由于每个字节由 8 位组成,因此我们必须将alpha 值位“向右” “推” :6 * 8 = 24
int alpha = color >> 24;
Run Code Online (Sandbox Code Playgroud)
这个过程称为位移位。所有最右边的 RGB 值都被丢弃,然后我们将 alpha 值存储在int0 到 255 之间的十进制值中。
编辑:如果您已经拥有从 getAlpha() 返回的 alpha 值,您始终可以将其乘以 255 并对其进行取整:
int alpha = Math.floor(myView.getAlpha() * 255);
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2128 次 |
| 最近记录: |