Android:Color To Int转换

Can*_*ner 28 android

这可能是一个愚蠢的问题,但我很惊讶,Paint班级没有setColor(Color c)方法.我想做以下事情:

public void setColor(Color color) {
/* ... */
Paint p = new Paint();
p.setColor(color); // set color takes only int as a paramter :(
/* ... */
}
Run Code Online (Sandbox Code Playgroud)

因此,任何简单的方法来转换Colorint

Dhr*_*val 70

任何color分析到int这里简单的两路:

1)获取系统颜色

int redColorValue = Color.RED;
Run Code Online (Sandbox Code Playgroud)

2)任何颜色十六进制代码作为字符串参数

int greenColorValue = Color.parseColor("#00ff00")
Run Code Online (Sandbox Code Playgroud)

必须记住上面的代码Color类必须android.graphics...!


She*_*tib 5

Color 中的所有方法和变量都是静态的。您不能实例化 Color 对象。

官方颜色文档

Color 类定义了创建和转换颜色整数的方法。

颜色表示为压缩整数,由 4 个字节组成:alpha、红色、绿色、蓝色。

这些值是未预乘的,这意味着任何透明度都单独存储在 alpha 分量中,而不是存储在颜色分量中。

组件存储如下 (alpha << 24) | (红色<<16) | (绿色 << 8) | 蓝色。

每个组件的范围在 0..255 之间,0 表示该组件没有贡献,255 表示 100% 贡献。

因此,不透明黑色将是 0xFF000000(100% 不透明,但没有来自红色、绿色或蓝色的贡献),不透明白色将是 0xFFFFFFFF