Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/214.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何将R.color转换为颜色?_Java_Android_Colors - Fatal编程技术网

Java 如何将R.color转换为颜色?

Java 如何将R.color转换为颜色?,java,android,colors,Java,Android,Colors,Android有两种颜色:和 布局使用R.color(我需要holo_蓝光:17170450(0x01060012)) 但是函数(如setColor())具有其他类型的输入int(即CYAN:-16711681(0xff00ffff)) 否定R.color返回不正确的颜色。如何转换它们?由于getResources().getColor现在已被弃用,您可以使用: ContextCompat.getColor(getResources(),R.color.idOfColour) 旧答案 使用 它返

Android有两种颜色:和 布局使用
R.color
(我需要
holo_蓝光:17170450(0x01060012)

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

否定
R.color
返回不正确的颜色。如何转换它们?

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

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

旧答案

使用

它返回您要查找的
int
颜色。如果颜色随Android附带,您可以通过
Android.R.color.colorID

  • 从您获得的资源中获取颜色

    getResources().getColor(R.color.color\u id)

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

  • 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

    在导入区域中查看您已导入的
    android.R删除它将要使用的代码,并且从R.color转换为颜色代码#xxxxxx的整个api非常麻烦,以至于只对颜色代码进行硬编码似乎要好得多。“为什么这么复杂?”卡尔谢谢你指出。这并不复杂。不赞成的原因是颜色可以根据上下文的主题进行样式化。好吧,当你知道它时并不复杂,但在此之前。在这个函数上有很多线程应该非常简单,但是在Android timethiefs的花园中还有另外三个线程。很抱歉得出了严厉的结论:-)我建议显而易见的解决方案应该是一个可以接受R.color作为输入参数的非着色级别。可以节省我们的时间。int就是int。你如何区分int资源和int颜色?这对我不适用。似乎没有带int的颜色初始值设定项。
    
    int color_int = ContextCompat.getColor(context, R.color.your_color);
    Color colorName = new Color(color_int );