Android有两种颜色:R.color和color
布局使用R.color
(我需要holo_blue_light: 17170450 (0x01060012)
)
但是函数(例如setColor())具有另一种类型的输入int(即CYAN: -16711681 (0xff00ffff)
)。
R.color
的否定会返回错误的颜色。我应该怎么做才能转换它们?
答案 0 :(得分:18)
由于getResources().getColor
现已弃用,您可以使用:
ContextCompat.getColor(getResources(), R.color.idOfColour)
旧回答
使用
getResources().getColor(R.color.idOfColour);
它会返回您要查找的int
颜色。如果Android附带颜色,您可以使用android.R.color.colourId
答案 1 :(得分:3)
您获得的资源的颜色
。getResources()的getColor(R.color.color_id);
您从视图中保存的颜色(比如背景颜色或文字颜色),看起来就像是您的第二个例子,您可以通过
Color.parseColor(String color)
答案 2 :(得分:1)
为什么不尝试以fowling的方式解析颜色
int colorCode = Color.parseColor("#ffffff") ;
setColor(colorCode) ;
答案 3 :(得分:1)
2016年7月6日更新
ContextCompat.getColor(context, R.color.your_color);
答案 4 :(得分:0)
我想补充一件事
int color_int = ContextCompat.getColor(context, R.color.your_color);
Color colorName = new Color(color_int );
您可以根据需要使用colorName