我正在尝试修改第三方软件。我想使用由某些方法(我无法修改)返回的颜色作为整数。但是,我想使用 RGB 格式,如#FF00FF。我怎样才能进行转换?
这是一个 HTML 示例 http://www.shodor.org/stella2java/rgbint.html 我想在 Android 上用 Java 归档同样的东西。
原文由 Marek 发布,翻译遵循 CC BY-SA 4.0 许可协议
我正在尝试修改第三方软件。我想使用由某些方法(我无法修改)返回的颜色作为整数。但是,我想使用 RGB 格式,如#FF00FF。我怎样才能进行转换?
这是一个 HTML 示例 http://www.shodor.org/stella2java/rgbint.html 我想在 Android 上用 Java 归档同样的东西。
原文由 Marek 发布,翻译遵循 CC BY-SA 4.0 许可协议
我发现对我来说最简单和最好的解决方案是直接使用 Color 类,如下所示:
int red = Color.red(intColor);
int green = Color.green(intColor);
int blue = Color.blue(intColor);
int alpha = Color.alpha(intColor);
这样我就可以处理整数值而不必处理字符串。另一方面,如果代表 rgb 颜色的字符串是您所需要的,那么 Pankaj Kumar 的答案是最好的。我希望这对某人有用。
原文由 Francesco D.M. 发布,翻译遵循 CC BY-SA 3.0 许可协议
15 回答8.4k 阅读
8 回答6.2k 阅读
1 回答4k 阅读✓ 已解决
3 回答6k 阅读
3 回答2.2k 阅读✓ 已解决
2 回答3.1k 阅读
2 回答3.8k 阅读
用这个
我们知道 HEX 中颜色值的长度是 6。所以你在这里看到 6。 %06X 匹配来自 (0xFFFFFF & intColor) 的结果,如果长度小于 6,则通过在结果左侧附加零来使结果为 6。你看到#,所以这个#char 被附加到结果,最后你得到一个十六进制颜色值。
自 API 26 以来,出于类似原因引入了新方法
Color.valueOf(....)
来转换颜色。你可以像这样使用它