27

我有一个使用 Paint 和 Canvas 绘制对象的自定义视图。我的问题是如何设置:

int color = R.color.white;
paint.setColor(color);

来自我的 /res/valuse/color.xml ,其中包括类似的资源

<?xml version="1.0" encoding="utf-8"?>
<resources>
    <color name="white">#FFFFFF</color>
    <color name="black">#000000</color>
    ...
</resources>
4

5 回答 5

61
int color = ContextCompat.getColor(context, R.color.white);
paint.setColor(color);

setColor()方法将颜色编号作为int值,但不是资源 id,它也是一个int

于 2012-10-15T15:59:18.657 回答
13

首先从 xml 文件中获取您的颜色

int color = context.getResources().getColor(R.color.colorPrimary); // old

现在已弃用,请改用它

int color = ContextCompat.getColor(context, R.color.colorPrimary); // new

设置颜色

paint.setColor(color);

xml文件预览:res/values/color.xml

<?xml version="1.0" encoding="utf-8"?>
<resources>
    <color name="colorPrimary">#3F51B5</color>
    <color name="colorPrimaryDark">#303F9F</color>
    <color name="colorAccent">#FF4081</color>
</resources>
于 2016-03-21T21:55:26.337 回答
12

尝试使用color.white

paint.setColor(Color.white)
于 2012-11-23T09:19:09.120 回答
2
paint.setColor(Color.parseColor("#FFFFFF"))
于 2020-08-09T12:21:09.327 回答
0

设置任何颜色

paint.setColor( Color.rgb(R, G, B) )
于 2020-01-15T11:45:16.003 回答