如何使用整数设置颜色?

8

如何将颜色代码从整数(例如13369395)转换为适用于Android的特定格式?由于13369395也是整数,所以我尝试进行以下操作:

mainLayout.setTextColor(13369395);

但是它不起作用。 我还尝试将13369395转换为十六进制,如下所示:
mainLayout.setBackgroundColor(Integer.parseInt(13369395 +"", 16)+0xFF000000);

但这也没有帮助到它。
4个回答

8
我有一个解决方案。只需使用十六进制进行以下操作:

Integer.toHexString(colour);

这将返回您的整数的十六进制字符串,如果您只是通过

mainLayout.setBackgroundColor(Integer.parseInt(hexVal,16));

使用它是无效的。您需要添加掩码,如下所示:

mainLayout.setBackgroundColor(0xff000000 + Integer.parseInt(hexVal,16));

这解决了问题。


8
尝试传递下面的参数:
mainLayout.setBackgroundColor(Color.parseColor("#FFFFFF"));

7
这个问题非常古老。尽管如此,本回答仍将帮助那些寻找一种以整数直接设置颜色的方法的人。
如果您查看Android文档,白色的常量值为-1,黑色为-16777216(即整个颜色int值范围为-1至-16777216)。因此,您可以将整数值简单地加上-16777216来设置颜色。
例如,如果您想要设置颜色为白色,其十进制表示为16777215(0xffffff),那么16777215-16777216将给您在Android中代表黑色的-1颜色常量。

-2

您可以直接使用十六进制代码。例如

mainLayout.setBackgroundColor( #0BB5FF);


我找到了解决方案。只需要使用十六进制的方法,如下所示:Integer.toHexString(colour); 它会返回整数的十六进制字符串,但是如果你只是使用 mainLayout.setBackgroundColor(Integer.parseInt(hexVal,16)); 它不会起作用。你需要添加掩码,如 mainLayout.setBackgroundColor(0xff000000 + Integer.parseInt(hexVal,16)); 这样就解决了问题。谢谢。 - Arun
mainLayout.setBackgroundColor(#0BB5FF); 这在Java 1.6中不受支持。 - LokiDroid

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接