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

时间:2013-05-27 19:08:08

标签: android

我正在尝试比较我的一个视图的背景颜色是否等于我创建的颜色资源,并且没有找到任何有用的颜色。

我愿意使用任何方法,无论是转换为HEX还是String或Int,只要它有效。这是我当前方法的一个例子。

我用:

设置视图的背景颜色
chosenColor.setBackgroundColor(getResources().getColor(R.color.tag_pink));

当我使用此方法检索它时:

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

colorId == `-611329` 

Integer.toString上使用R.color.tag_pink会将2130968581显示的值显然无法在if语句中与检索到的值进行比较。

这样做的最佳方式是什么,所以我不必使用硬编码单个值,这会阻止我调整颜色资源?

2 个答案:

答案 0 :(得分:3)

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

形式的颜色

答案 1 :(得分:1)

简单回答:

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

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