android5.0之后用getConstantState()方法判断ImageView使用的是哪张图片

来源:互联网 发布:最美的古诗词知乎 编辑:程序博客网 时间:2024/06/16 21:14

android5.0之后用getConstantState()方法判断ImageView使用的是哪张图片

在android 5.0之前,我们可以通过下面的方式判断当前的ImageView使用的是哪张图片

if(img.getDrawable().getCurrent()..getConstantState().equals(getResources().getDrawable(R.mipmap.a).getConstantState()))
{
//是图片a
}else{
//不是
}

但是,当在android 5.0以后再使用此种方式去判断的话,会发现即使当前的img设置的图片为 a,但是两者比较后是不相等的,因为在android 5.0以后这中方式就不行了,需要用以下的方式去比较:
if((img.getDrawable().getCurrent().getConstantState()).equals(ContextCompat.getDrawable(this,R.mipmap.a).getConstantState()))
{
//是图片a
} else {
//不是
}

可以发现,android 5.0 以后获取drawable的方式应该改为:ContextCompat.getDrawable(this,R.mipmap.a)。

原创粉丝点击