Android 如何检索视图的背景色并将其与颜色资源进行比较

Android 如何检索视图的背景色并将其与颜色资源进行比较,android,Android,我试图比较我的一个视图的背景色是否与我创建的颜色资源相同,但没有发现任何有效的颜色资源 我愿意使用任何方法,无论是转换为十六进制、字符串还是Int,只要它有效。下面是我当前方法的一个示例 我使用以下设置视图的背景色: chosenColor.setBackgroundColor(getResources().getColor(R.color.tag_pink)); 使用此方法检索时: ColorDrawable chosenColorBox = (ColorDrawable) chosenCo

我试图比较我的一个视图的背景色是否与我创建的颜色资源相同,但没有发现任何有效的颜色资源

我愿意使用任何方法,无论是转换为十六进制、字符串还是Int,只要它有效。下面是我当前方法的一个示例

我使用以下设置视图的背景色:

chosenColor.setBackgroundColor(getResources().getColor(R.color.tag_pink));
使用此方法检索时:

ColorDrawable chosenColorBox = (ColorDrawable) chosenColor.getBackground();  
int colorId =  chosenColorBox.getColor();

colorId == `-611329` 
在R.color.tag_pink上使用Integer.toString显示的值为2130968581,这显然无法在if语句中与检索到的值进行比较


这样做的最佳方法是什么,这样我就不必求助于硬编码单个值,这会阻止我调整颜色资源?

尝试将颜色与Context.getResources.getColorR.color.tag\u pink进行比较,而不是资源的ID(不是颜色!)!。返回的值以0xAARRGGBB的形式表示颜色。

尝试将颜色与Context.getResources.getColorR.color.tag_pink进行比较,而不是将资源的ID与颜色进行比较!。返回值以0xAARRGGBB的形式表示颜色。

简单回答:

int viewColor=((ColorDrawable) YOUR_VIEW.getBackground()).getColor();

if(viewColor==Color.parseColor("#ffffffff"){
  //Color matched
}
答案很简单:

int viewColor=((ColorDrawable) YOUR_VIEW.getBackground()).getColor();

if(viewColor==Color.parseColor("#ffffffff"){
  //Color matched
}

非常感谢,拉兹。成功了。我应该意识到我引用的是ID而不是颜色。答案已被接受,最终解决方案如下。彩色ID!=getResources.getColorR.color.tag_no_tag_chosenThanks这么多,拉兹。成功了。我应该意识到我引用的是ID而不是颜色。答案已被接受,最终解决方案如下。彩色ID!=getResources.getColorR.color.tag\u no\u tag\u chosenSOLUTION:colorId!=getResources.getColorR.color.tag\u no\u tag\u chosenSOLUTION:colorId!=getResources.getColorR.color.tag\未选择标签