java - 从 RGBA 到十六进制

标签 java android

我正在尝试将 RGBA 值(分割 4 个值)转换为十六进制值。

目前,我有以下代码:

int red = Integer.parseInt(colors[0]);
int green = Integer.parseInt(colors[1]);
int blue = Integer.parseInt(colors[2]);
float alpha = Float.parseFloat(colors[3]);

现在,我想将这些颜色转换为十六进制,这样我就可以使用此方法来创建颜色:new ColorDrawable(0xFF99CC00)

有什么建议吗?

最佳答案

public int toHex(Color color) {
    String alpha = pad(Integer.toHexString(color.getAlpha()));
    String red = pad(Integer.toHexString(color.getRed()));
    String green = pad(Integer.toHexString(color.getGreen()));
    String blue = pad(Integer.toHexString(color.getBlue()));
    String hex = "0x" + alpha + red + green + blue;
    return Integer.parseInt(hex, 16);
}

private static final String pad(String s) {
    return (s.length() == 1) ? "0" + s : s;
}

使用

int color = toHex(new Color(1f, 1f, 1f, 1f));

或者你可以使用

Color.argb(a_int, r_int, g_int, b_int);
//(Multiply int value by 255.0f)

关于java - 从 RGBA 到十六进制,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17853157/

相关文章:

java - Android如何同时处理多个Runnable对象

java - 导入DXL文件时出现"You are not authorized..."

android - 使用图像启动 ACTION_EDIT 并返回图像的教程/引用

android - 我可以在运行时在 ListView 中插入一列吗?

java - 如何从 JNA 调用 ALSA 分配#define?

java - 使用正则表达式从文本文件中查找搜索模式

android - OnRecivedError 不显示自定义错误页面

java - 仅一次迭代后应用程序就会崩溃。如果没有可运行程序,它根本无法运行。现在它在第一次迭代后崩溃了

Java 中的 Java 实例变量解析令人困惑;

android - 如何使用 Android Espresso 测试 TextInputLayout 值(提示、错误等)?