我正在尝试将 Paint.setColor() 与来自 res/values/colors.xml 的颜色一起使用,但它一直显示为“灰色”。如果我改用字符串文字并使用 Paint.parseColor() 它会正确显示。怎么回事?
onDraw()
p.setColor (Color.parseColor ("#82ef82")); // <- this works
p.setColor (R.color.PeaGreen); // <- this is gray
颜色.xml
<color name="PeaGreen">#82ef82</color>
最佳答案
R.color.PeaGreen
不是颜色,它是颜色资源的资源 ID。但由于颜色由整数表示,资源 ID 也由整数表示,因此它不会抛出任何警告或错误。您需要做一些工作才能从资源 ID 获取实际颜色:
p.setColor(context.getResources().getColor(R.color.PeaGreen));
在 Color 中也定义了一些颜色常量。类,您可以像这样使用它们:
p.setColor(Color.RED);
关于Android XML Color 显示为灰色?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13954894/