1

我正在尝试将 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>
4

1 回答 1

2

R.color.PeaGreen不是颜色,它是颜色资源的资源 ID。但由于颜色由整数表示,资源 ID 也是如此,因此它不会引发任何警告或错误。您需要做一些工作才能从资源 ID 中获取实际颜色:

p.setColor(context.getResources().getColor(R.color.PeaGreen));

Color类中还定义了一些颜色常量,您可以像这样使用它们:

p.setColor(Color.RED);
于 2012-12-19T14:53:08.773 回答