如何在Android中将Int值转换为COLOR(使用Kotlin或Java)



我搜索了很多,但找不到解决方案。

它从API返回一个Int作为颜色值2813300。这是一种从绿色LiNK到彩色的色调

我试图在我的项目中使用这个Int作为Color,但我无法将其转换为android.graphics.Color.

当我尝试使用int时,它不起作用。

如何将这些数字转换为彩色?

示例:

RED=16711936(链路(

绿色=2813300(链接(

Integer.toString将把您的int值转换为十六进制值

Integer.toString(2813300, 16)

结果:

2AED74

你可以像这样使用十六进制颜色:

String Hex  = Integer.toString(2813300, 16);
myLayout.setBackgroundColor(Color.parseColor("#" + Hex));

起初,我发现自己做错了什么。

我的代码调用了另一个方法,该方法在我使用2813300时从资源中获取颜色,但在资源中找不到。

以下代码不起作用

myLayout.setBackground(ContextCompat.getColor(context!!, color), PorterDuff.Mode.SRC_IN)

当我把它改成下面的时候,它起作用了。

myLayout.setBackground(2813300-1677216, PorterDuff.Mode.SRC_IN)

(从这里回答(-如果你想知道我为什么使用-16777216,请访问链接

var color = 2813300 - 16777216
dialogBody.background.setColorFilter(color, PorterDuff.Mode.SRC_IN)

但前面的答案也非常适合使用。谢谢你阿内姆

最新更新