如何将int转换为十六进制颜色并将其与 ColorDrawable 一起使用?
我尝试过使用字符串的其他方法,并且我得到“ColorDrawable不能应用于java.lang.String”。
我试过了:
String strColor = String.format("#%06X", 0xFFFFFF & actionColor);
actionBar.setBackgroundDrawable(new ColorDrawable(strColor));
但我无法将其应用于ColorDrawable。我试图用十六进制设置ActionBar的颜色。
由于
答案 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;十六进制形式的"并知道该怎么做。