使用Java,如何将人类可读的颜色名称转换为三元素整数数组?
例如,我有一种颜色代表:
int[] RGB_COLOR = {128,25,25};
我希望能够将静态值Color.BLUE
转换为与上面的类似的三元素整数数组。这是可能的还是我必须破解我的方式?
答案 0 :(得分:4)
你的意思是这样......
Color c = Color.BLUE;
int[] RGB = { c.getRed(), c.getGreen(), c.getBlue() };
要将颜色名称转换为颜色,您可以使用反射,前提是它具有内置颜色。如果您想要更多颜色,则需要使用地图。
public static Color colorOf(String color) {
try {
return (Color) Color.class.getDeclaredField(color).get(null);
} catch(Exception notAvailable) {
return null; // ??
}
}
答案 1 :(得分:1)
只需使用getGreen()
类的getRed()
,getBlue()
,Color
方法
答案 2 :(得分:1)
向下滚动您关联的文档
Color c = //...;
int[] color = {c.getRed(),c.getGreen(),c.getBlue()};
答案 3 :(得分:0)
从Color
获取String
对象的最简单方法是创建Map<String, Color>
将有效String
颜色名称映射到Color
个对象。
Map<String, Color> map = new HashMap<String, Color>();
map.put("BLUE", Color.BLUE);
// etc.
Color color = map.get(someString);
另外,我建议不将RGB值存储在int[3]
中,除非你真的需要它,因为某些第三方代码需要它。一般来说,使用Color
类更为合适。