Java 如何将R.color转换为颜色?
Android有两种颜色:和 布局使用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) 旧答案 使用 它返
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
为什么不试着用捕鸟人的方式来剥颜色呢
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 );