我试图使用枚举来表示代码中的不同颜色。我的想法是接收一个十六进制代码,即String类型的FF0000,我想将其与枚举中的颜色值相关联。
类似于:
所以我认为应该是这样的:
public enum ColorList {
RED("#FF0000")
ORANGE("FFA500")
private String value;
public String getValue() { return value; }
ColorList(String value) { this.value = value; }
}
public void handleColor(String hexColor) {
// hexColor is = "#FF0000"
ColorList myColor = ColorList.valueOf(hexColor);
doWithColor(myColor);
}
public void doWithColor(ColorList myColor) {
System.out.println(myColor.name());
// I expect RED
System.out.println(myColor.getValue());
// I expect "#FFEDAB"
}
不知道如何填补这里的空白。我认为唯一的问题是试图从任意值(十六进制代码)获取枚举,所以我不能只使用valueOf(hexColor)。
一种选择如下:
public void handleColor(String hexColor) {
..
for(ColorList ls :ColorList.values()){
if(ls.getValue().equalIgnoreCase(hexColor)){
System.out.println(ls.name()); // this prints RED for hexColor #FF0000
}
}
..
}
你可以这样做:
public enum ColorList {
RED("#FF0000"),
ORANGE("FFA500");
private String value;
public String getValue() { return value; }
ColorList(String value) { this.value = value; }
public static ColorList fromHex(String hexColor) {
// if needed instead of loop,
// you can create a static map to search by hex code
for (ColorList color : ColorList.values()) {
if (color.getValue().equals(hexColor)) {
return color;
}
}
return null;
}
// I'm not sure if you need this function.
public static ColorList fromHexOrName(String hexOrName) {
// search by Hexadecimal value
ColorList color = fromHex(hexOrName);
if (color != null) {
return color;
}
// else search by name
try {
return ColorList.valueOf(hexOrName);
}catch (IllegalArgumentException | NullPointerException e) {
return null;
}
}
}
public void handleColor(String hexColor) {
// hexColor is = "#FF0000"
ColorList myColor = ColorList.fromHex(hexColor);
// OR this call below if needed :
// ColorList myColor = ColorList.fromHexOrName(hexColor);
doWithColor(myColor);
}
public void doWithColor(ColorList myColor) {
System.out.println(myColor.name());
// I expect RED
System.out.println(myColor.getValue());
// I expect "#FFEDAB"
}
嘿,我在关注波士顿新闻的Android学习系列。我在这个部分:http://www.youtube.com/watch?feature=player_embedded 现在,我想做的是在某个地方(在代码或文件中)保存一些基本颜色,例如红色、绿色等,并为它们分配HEX代码。 比如,如果用户在“edittext”中键入“red”,那么我想将“red”的值存储为“#FF0000”(就像C中的#defin
问题内容: 我正在一个项目中,我需要生成未定义数量的随机,十六进制颜色代码……我将如何在PHP中构建这样的函数? 问题答案: 获取0到255之间的随机数,然后将其转换为十六进制:
问题内容: 我正在尝试在Swift中使用十六进制颜色值,而不是允许您使用的几个标准颜色值,但是我不知道该怎么做。 示例:如何将其用作颜色? 问题答案: 实际上是用十六进制表示的3种颜色分量- 红色,绿色和蓝色。您可以使用前缀在Swift中编写十六进制表示法,例如 为了简化转换,让我们创建一个采用整数(0-255)值的初始化程序: 用法: 如何获得阿尔法? 根据您的用例,您可以简单地使用本机方法,例
问题内容: 我的应用程序中有一些滑块,允许用户更改ARGB颜色,但是我需要将这些值转换为十六进制值,如0xff000000,即纯黑色。 这是我到目前为止所拥有的: 但是,在获得如下所示的Integer值时,我得到了输入字符串“ 0xccffffff”的NumberFormatException: 关于如何将其转换为整数的任何想法?谢谢。 问题答案: Color参数必须在1f和0f之间浮动。因此,这
问题内容: 标题 有没有一种方法可以将任意字符串映射到十六进制颜色代码。我尝试使用字符串哈希码计算字符串的十六进制数。现在,我需要将此十六进制数字转换为十六进制颜色代码范围内的六位数。有什么建议 ? 问题答案: 如果您不太在乎颜色的“含义”,则可以将int的位数拆分(将第一个仅删除RGB而不是ARGB)
我想改变我的应用程序中的原色,所以我尝试: 但这不起作用,所以我检查了文档,找到了另一种方法,即使用 所以我的问题是:如何用十六进制颜色改变原色