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

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

我有一个静态变量:

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文件中引用R.color.Black.那么为什么有时他们会有所不同呢?

解决方法:

getColor返回实际的AARRGGBB颜色值. R.color.Black是一个ID,其中包含一种颜色,它可以是黑色,也可以不是黑色.一个是实际值,一个是颜色的参考.

上一篇:随机更改相机背景颜色


下一篇:Python:在Turtle中一次使用多种颜色