Android将Int转换为Hex颜色

时间:2014-08-08 22:38:50

标签: java android hex

如何将int转换为十六进制颜色并将其与 ColorDrawable 一起使用?

我尝试过使用字符串的其他方法,并且我得到“ColorDrawable不能应用于java.lang.String”。

我试过了:

String strColor = String.format("#%06X", 0xFFFFFF & actionColor);

actionBar.setBackgroundDrawable(new ColorDrawable(strColor));

但我无法将其应用于ColorDrawable。我试图用十六进制设置ActionBar的颜色。

由于

3 个答案:

答案 0 :(得分:2)

ColorDrawable将int作为参数而不是string。我想actionColor也是一个整数(颜色十六进制),所以你应该这样做。

int color = 0xFFFFFF & actionColor;
actionBar.setBackgroundDrawable(new ColorDrawable(color));

答案 1 :(得分:1)

您可以将颜色视为由3个组件组成。 RGB。在你的例子中,你有0xffffff。第一个ff是红色分量,第二个ff是绿色分量,第三个FF是蓝色分量。更改那些可以获得颜色的十六进制值。

e.g。使用

int color = Color.rgb(255, 255, 175);

答案 2 :(得分:0)

也许我没有完全理解这个问题,但如果我能正确理解, 根据您的应用目的,您可以直接使用int,如下所示:

   actionBar.setBackgroundColor(actionColor);

假设actionColor具有您需要的颜色,该函数将采用其#16;十六进制形式的"并知道该怎么做。