我在我的应用中通过以下方式使用颜色值:
R.color.colorAccent
哪个被正确定义为:
<color name="colorAccent">#FF4081</color>
然而,在运行应用程序时,它会产生一种几乎像灰色的深色。当我使用
Color.parseColor("#FF4081")
它给出正确的红色/粉红色。这是预期的行为吗?我是否应该要求将R.color.colorAccent转换回十六进制值,然后通过Color.parseColor运行它以获得我期望的颜色?
答案 0 :(得分:0)
您需要将颜色实际解析为Android颜色,而不是直接引用资源int。
使用
getResources().getColor(R.color.colorAccent);
或
ContextCompat.getColor(context, R.color.colorAccent);
支持库中的
答案 1 :(得分:0)
R.color.ColorAccent
返回资源ID,而不是实际颜色。系统仍然将id识别为有效,并根据id显示颜色,而不是十六进制值。
你需要做这样的事情
view.setColor(context.getResources().getColor(R.color.colorAccent));