一尘不染

创建一个新的可绘制颜色

java

我正在尝试将十六进制值转换为int,以便创建新的可绘制颜色。我不确定是否可以,但是根据文档,应该可以。它明确地要求

公共ColorDrawable(int颜色)

在API级别1中添加。创建具有指定颜色的新ColorDrawable。

参数 color 绘制的颜色。

因此,我的代码无法正常工作,因为我收到一个无效的int:“ FF6666”错误。有任何想法吗?

int decode = Integer.decode("FF6666");
ColorDrawable colorDrawable = new ColorDrawable(decode);

阅读 199

收藏
2020-12-03

共1个答案

一尘不染

因为您在谈论十六进制,所以您必须从头开始,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)
2020-12-03