我搜索了很多,但找不到解决方案。
它从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)
但前面的答案也非常适合使用。谢谢你阿内姆