gpt4 book ai didi

android - 以编程方式在android中获取ARGB背景颜色的值

转载 作者:搜寻专家 更新时间:2023-11-01 08:35:16 25 4
gpt4 key购买 nike

假设我在android中将背景颜色设置为#AF000000(AARRGGBB)。我想要十进制 (0-255) 的 alpha channel (AA) 的值,这将是 175。

如何以编程方式实现?

最佳答案

这是一个纯 Java 解决方案,不使用 Android 特定的 getAlpha() 方法。

您是否将此值存储在 Stringint 中?如果您在 String 中有它,首先去掉 # 字符,然后将其转换为 int:

String hexString = "#05000000";
int color = Integer.parseInt(hexString.replaceAll("#", ""), 16);

然后我们需要进行一些位操作。这种十六进制颜色表示意味着(在 ARGB 模式下)您具有值 #AARRGGBB。即每个 channel 2 个字节,包括 alpha channel 。为了只获得 alpha channel (十六进制值的 AA 部分),我们需要“将它向右推 6 个字节”(Java 是一种 Big Endian 语言) 所以我们可以得到类似 #000000AA 的内容。由于每个字节由 8 位组成,我们必须“推” alpha 值6 * 8 = 24“向右” :

int alpha = color >> 24;

这个过程叫做Bit Shifting .所有最右边的 RGB 值都被丢弃,然后我们将 alpha 值存储在 int 中,十进制值介于 0 到 255 之间。

编辑:如果您已经有了从 getAlpha() 返回的 alpha 值,您总是可以将它乘以 255 并将其取整:

int alpha = Math.floor(myView.getAlpha() * 255);

关于android - 以编程方式在android中获取ARGB背景颜色的值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37178523/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com