美文网首页Android开发经验谈Android开发Android技术知识
判断ImageView当前的图片是哪个图片,然后比对资源文件的操

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

作者: OneXzgj | 来源:发表于2018-03-23 10:24 被阅读229次

    描述一下需求:我们在点击一个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);
    }
    

    相关文章

      网友评论

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

        本文链接:https://www.haomeiwen.com/subject/vemtcftx.html