getResources()。getColor(R.color.Black)和直接R.color.Black之间的区别

时间:2014-12-21 19:37:21

标签: android colors

我注意到了一个奇怪的日食行为?

我有一个静态变量:

public static colorID = R.color.Black;

有时它与R.color.Black匹配:

if(colorID == R.color.Black)
     //sometimes it works

有时我需要使用

if(colorID == getResources().getColor(R.color.Black));

通过测试你的代码是否很大来找到错误真的很烦人......

所以我想知道为什么它为什么不工作,以及为什么返回的整数有时是不同的,有时不是。它们都在我的color.xml文件夹中的自定义values文件中引用了R.color.Black。那么为什么他们有时会有所不同呢?

1 个答案:

答案 0 :(得分:3)

getColor返回实际的AARRGGBB颜色值。 R.color.Black是一个包含颜色的id,可能是也可能不是黑色。一个是实际值,一个是颜色的参考。