为什么R.color的显示颜色之间存在差异。<;彩色字符串>;android中的Color.parseColor(十六进制的colorString)?
为android view设置颜色代码的两种不同方法返回不同的结果,不知道为什么 正在尝试重新构造代码,并希望转换以下代码段: 方法1:为什么R.color的显示颜色之间存在差异。<;彩色字符串>;android中的Color.parseColor(十六进制的colorString)?,android,material-design,android-color,Android,Material Design,Android Color,为android view设置颜色代码的两种不同方法返回不同的结果,不知道为什么 正在尝试重新构造代码,并希望转换以下代码段: 方法1: Paint p = new Paint (); p.setColor(Color.parseColor("#D32F2F")); 在android中使用color.xml获取结果的小格式方法 方法2: Paint p = new Paint (); p.setColor(R.color.recyclerViewAnimationBackground);
Paint p = new Paint ();
p.setColor(Color.parseColor("#D32F2F"));
在android中使用color.xml获取结果的小格式方法
方法2:
Paint p = new Paint ();
p.setColor(R.color.recyclerViewAnimationBackground);
问题是两者返回的结果应该是相同的,但不确定它们为什么不同
方法1:返回红色
方法2:返回紫色
我在开发工作中没有遇到阻碍,但希望在理解这背后的逻辑方面得到一些帮助
R.color.recyclerViewAnimationBackground
为您提供R.java提供的资源id
Color.parseColor("#D32F2F")
为您提供正确的值,而不是任何id(来自R.java)
使用
R.color.XYZ
是标识颜色资源的资源标识符(实际上是一个int
)
Color.parseColor(#D32F2F”)
实际上返回一个Color
后者是你想要的。R.color
值只能在引用颜色资源的情况下使用
android支持库包含以下代码以获取资源标识符的颜色:
int color = ContextCompat.getColor(context, colorResourceId);
:-)我喜欢我们同时添加支持库代码的事实,我真的喜欢你们两个都添加错了的事实-完全错过了拥有ContextCompat类的意义。@Amit:非常感谢,这很有帮助:)
int color = ContextCompat.getColor(context, colorResourceId);