2012-12-19 118 views
1

我试图用res/values/colors.xml中的颜色使用Paint.setColor(),但它一直呈现“灰色”。如果我使用字符串文字,并使用Paint.parseColor(),它会正确显示。这是怎么回事?Android XML颜色显示为灰色?

的onDraw()

p.setColor (Color.parseColor ("#82ef82")); // <- this works 
p.setColor (R.color.PeaGreen); // <- this is gray 

colors.xml

<color name="PeaGreen">#82ef82</color> 

回答

2

​​并不出彩,它是一个颜色资源的资源ID。但是由于颜色由整数表示,资源标识也是如此,所以不会引发任何警告或错误。你需要做的工作一点点地从一个资源ID获得实际的颜色:

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

也有在Color类中定义的一些颜色常量,你可以使用它们像这样:

p.setColor(Color.RED); 
+0

谢谢,你真的很棒。我应该更清楚地知道。 – wufoo