所以我知道您可以像下面那样设置ImageView的图像(假设bun_picture是ImageView):

bun_picture.setImageResource(R.drawable.rawbun);


但是有什么方法可以检查ImageView当前显示的图像吗?
像这样(注意:.getImageResource不存在,我只是用它来遍历我想做的事情):

if(bun_picture.getImageResource() == R.drawable.rawbun) == true){
do something}


显然这行不通,但是我可以使用一些等效项吗?

谢谢

最佳答案

除非您在任何一个可绘制对象上调用了mutate(),否则可以通过比较两个可绘制对象的ConstantState字段来检查它们是否代表同一图像。

ConstantState mine = bun_picture.getConstantState();
ConstantState other = ContextCompat.getDrawable(context, R.drawable.rawbun).getConstantState();

if (mine.equals(other)) {
    // they are the same
}

10-05 19:41