我正在尝试比较我的一个视图的背景颜色是否等于我创建的颜色资源,并且没有找到任何有用的颜色。
我愿意使用任何方法,无论是转换为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
语句中与检索到的值进行比较。
这样做的最佳方式是什么,所以我不必使用硬编码单个值,这会阻止我调整颜色资源?
答案 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
}