java - 创建一个新的颜色drawable

标签 java android android-drawable colordrawable

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

public ColorDrawable (int color)

Added in API level 1 Creates a new ColorDrawable with the specified color.

Parameters color The color to draw.

所以,我的代码无法正常工作,因为我收到 Invalid int: "FF6666"错误。有什么想法吗?

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

最佳答案

既然你说的是十六进制,你必须从 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)

关于java - 创建一个新的颜色drawable,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19407672/

相关文章:

android - 如何在矢量可绘制对象中设置 colors.xml 中的颜色代码?

android - Xamarin Android SetBackgroundDrawable 已弃用但未弃用 SetBackground()

java - Spring Boot - 使用自定义 PreAuthorize 表达式和身份验证测试 Rest Api

Java 关闭钩子(Hook)

android - Android开发有没有类似于WPF数据绑定(bind)的概念?

java - 无法在 gradle 中添加依赖项(Android Studio)

java - native 内存分配 (mmap) 映射失败

Java函数式接口(interface)

android - 从 firebase 数据库检索数据的问题

android - 如何以编程方式更改现有图层列表的项目(ScaleDrawable)的颜色