判断ImageView当前的图片是哪个图片,然后比对资源文件的操作

描述一下需求:我们在点击一个ImageView的时候进行,切换背景,或者是资源文件的时候,我们需要根据拿到的背景进行比对,(试了好几种方法,总是出现一些小毛病)
例如:网上的某某人写的这种:

if (image1.getDrawable().getCurrent().getConstantState().equals(getResources().getDrawable(R.drawable.A).getConstantState())){

              //当image1的src为R.drawable.A时,设置image1的src为R.drawable.B

              image1.setImageResource(R.drawable.B);

}else{

              //否则设置image1的src为R.drawable.A

              image1.setImageResource(R.drawable.A);

}

显然在5.0的设备上一点毛用都没有。

比起比对资源文件,其实有一种更好的方法可以使用:设置相应的View的Tag,我们根据Tag的值去处理业务逻辑,笔记比较资源文件简单的多!简单贴一下代码:

    <ImageView
                android:id="@+id/iv_al_remember_psw"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:tag="select"
                android:src="@drawable/select_rember_psw" />
if (ivAlRememberPsw.getTag().equals("select")) {
        TLog.d("没有选择");
        isRemeberPsw = false;
        ivAlRememberPsw.setTag("unSelect");
        ivAlRememberPsw.setImageResource(R.drawable.remeber_psw);

} else {
        TLog.d("进行记住");
        isRemeberPsw = true;
        ivAlRememberPsw.setTag("select");
        ivAlRememberPsw.setImageResource(R.drawable.select_rember_psw);
}
    原文作者:OneXzgj
    原文地址: https://www.jianshu.com/p/6aae6d7e2434
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞