我有一个使用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>
答案 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"))