Android 有 2 种颜色: R.color 和颜色
布局使用R.color
(我需要holo_blue_light: 17170450 (0x01060012)
)
但是函数(例如 setColor())具有其他类型的输入 int(即CYAN: -16711681 (0xff00ffff)
)。
否定R.color
返回不正确的颜色。我应该怎么做才能转换它们?
由于 getResources().getColor
现在已弃用,您可以使用:
ContextCompat.getColor(getResources(), R.color.idOfColour)
旧答案
采用
getResources().getColor(R.color.idOfColour);
它返回int
您正在寻找的颜色。如果颜色随 Android 一起提供,您可以通过以下方式获取其 idandroid.R.color.colourId
来自您通过的资源的颜色
getResources().getColor(R.color.color_id);
您从视图中保存的颜色(例如背景颜色或文本颜色),看起来像您的第二个示例,您可能会通过
Color.parseColor(字符串颜色)
为什么不尝试以捕鸟方式解析颜色
int colorCode = Color.parseColor("#ffffff") ;
setColor(colorCode) ;
2016 年 7 月 6 日更新
ContextCompat.getColor(context, R.color.your_color);
我还想补充一件事
int color_int = ContextCompat.getColor(context, R.color.your_color);
Color colorName = new Color(color_int );
你可以随意colorName
使用