我正在尝试将十六进制值转换为int,以便创建新的可绘制颜色。我不确定是否可以,但是根据文档,应该可以。它明确地要求
公共ColorDrawable(int颜色) 在API级别1中添加。创建具有指定颜色的新ColorDrawable。 参数 color 绘制的颜色。
公共ColorDrawable(int颜色)
在API级别1中添加。创建具有指定颜色的新ColorDrawable。
参数 color 绘制的颜色。
因此,我的代码无法正常工作,因为我收到一个无效的int:“ FF6666”错误。有任何想法吗?
int decode = Integer.decode("FF6666"); ColorDrawable colorDrawable = new ColorDrawable(decode);
因为您在谈论十六进制,所以您必须从头开始,0x并且不要忘记不透明性。
0x
所以基本上是: 0xFFFF6666
ColorDrawable cd = new ColorDrawable(0xFFFF6666);
您还可以在/ res中创建一个新的colors.xml文件,并定义如下颜色:
<?xml version="1.0" encoding="utf-8"?> <resources> <color name="mycolor">#FF6666</color> </resources>
并简单地获取R.color.mycolor中定义的颜色
getResources().getColor(R.color.mycolor)