java - 从十六进制颜色转换为 RGB

标签 java android colors

如何从“#6F00AC”形式的颜色中获取 RGB 值?

我尝试过,但没有成功

int newcolor = (int)Long.parseLong(String.valueOf(Color.parseColor("#6F00AC")), 16);
    float r = ((newcolor >> 16) & 0xFF) / 255f;
    float g = ((newcolor >> 8) & 0xFF) / 255f;
    float b = ((newcolor >> 0) & 0xFF) / 255f;

最佳答案

Color有静态方法 red/blue/green 和 alpha

int color = Color.parseColor("#6F00AC");
int red = Color.red(color);
int green = Color.green(color);
int blue = Color.blue(color);
int alpha = Color.alpha(color);

它们分别返回颜色 int 的红色、蓝色、绿色、alpha 分量。

编辑:

你的代码几乎是正确的,(你不需要除以255)

int r = (color >> 16) & 0xFF;
int g = (color >> 8) & 0xFF;
int b = color & 0xFF;

关于java - 从十六进制颜色转换为 RGB,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29303935/

相关文章:

java - 比较 2 个 *.txt 文件并打印它们之间的差异

java - 如何随机排列列表中的特定元素集?

android - android web View 中的动态进度条

javascript - 如何使用颜色渐变推导出颜色的相对百分比值

android - 在 Android 中通过 CODE ONLY 更改进度条颜色

java - 使用正则表达式检查字符串的开头是否与模式匹配

java - 如何在 JavaFX GridPane 中添加日期标题

Android 相机 - SD 卡不可用

java - firestore 中的等效 addValueEventListener 是什么

德尔福编辑器。光标样式