17

Android 有 2 种颜色: R.color颜色 布局使用R.color(我需要holo_blue_light: 17170450 (0x01060012)

但是函数(例如 setColor())具有其他类型的输入 int(即CYAN: -16711681 (0xff00ffff))。

否定R.color返回不正确的颜色。我应该怎么做才能转换它们?

4

5 回答 5

23

由于 getResources().getColor现在已弃用,您可以使用:

ContextCompat.getColor(getResources(), R.color.idOfColour)

旧答案

采用

 getResources().getColor(R.color.idOfColour);

它返回int您正在寻找的颜色。如果颜色随 Android 一起提供,您可以通过以下方式获取其 idandroid.R.color.colourId

于 2013-07-13T10:26:17.640 回答
3
  1. 来自您通过的资源的颜色

    getResources().getColor(R.color.color_id);

  2. 您从视图中保存的颜色(例如背景颜色或文本颜色),看起来像您的第二个示例,您可能会通过

Color.parseColor(字符串颜色)

于 2013-07-13T10:35:28.257 回答
1

为什么不尝试以捕鸟方式解析颜色

int colorCode = Color.parseColor("#ffffff") ;
setColor(colorCode) ;
于 2013-07-13T10:38:58.420 回答
1

2016 年 7 月 6 日更新

ContextCompat.getColor(context, R.color.your_color);

https://stackoverflow.com/a/31590927/3244382

于 2016-07-06T10:26:17.547 回答
0

我还想补充一件事

int color_int = ContextCompat.getColor(context, R.color.your_color);
Color colorName = new Color(color_int );

你可以随意colorName 使用

于 2017-02-20T13:15:25.227 回答