如何设置paint.setColor(R.color.white)

时间:2012-10-15 15:57:19

标签: android canvas paint

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

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>

5 个答案:

答案 0 :(得分:52)

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

setColor()方法将颜色编号设为int值,但不是资源ID,也是int

答案 1 :(得分:12)

尝试使用color.white

paint.setColor(Color.white)

答案 2 :(得分:9)

首先从xml文件中获取颜色

from lxml import etree

s = '''<?xml version="1.0" encoding="utf-8"?>
<Basic>
    <Segment>
        <Sample value="12" data2="25" data3="23"/>
        <Sample value="13" data2="0" data3="323"/>
        <Sample value="14" data2="2" data3="3"/>
    </Segment>
</Basic>'''

# ❗️for python2
# tree = etree.fromstring(s)

# ❗️for python3
tree = etree.fromstring(s.encode("utf-8"))

samples = tree.xpath('//Sample')

print([sample.get('data2') for sample in samples])
>>> ['25', '0', '2']

现已弃用,请改用

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

设置颜色

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

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

paint.setColor(color);

答案 3 :(得分:0)

设置任何颜色

paint.setColor( Color.rgb(R, G, B) )

答案 4 :(得分:0)

paint.setColor(Color.parseColor("#FFFFFF"))