如何将R.color转换为Color?

时间:2013-07-13 10:24:14

标签: java android colors

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

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

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

5 个答案:

答案 0 :(得分:18)

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

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

旧回答

使用

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

它会返回您要查找的int颜色。如果Android附带颜色,您可以使用android.R.color.colourId

获取其ID

答案 1 :(得分:3)

  1. 您获得的资源的颜色

      。

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

  2. 您从视图中保存的颜色(比如背景颜色或文字颜色),看起来就像是您的第二个例子,您可以通过

  3.   

    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);

请参阅https://stackoverflow.com/a/31590927/3244382

答案 4 :(得分:0)

我想补充一件事

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

您可以根据需要使用colorName

相关问题