Android中比较两个图片是否一致的问题

 更新时间:2020年10月30日 15:00:56   作者:Jason~JiaoJiaoOne  
这篇文章主要介绍了Android中比较两个图片是否一致的问题,本文通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下

  在Fragment界面中,设置两个图片一致如下:

 默认设置图片为:

binding.ivArrow.setImageResource(R.drawable.icon_down);

 先获取默认图片,再和其它两张图片做对比,然后处理业务逻辑:

Drawable.ConstantState ivArrow = binding.ivArrow.getDrawable().getCurrent().getConstantState();
        Drawable.ConstantState icon_up = getDrawable(R.drawable.icon_up).getConstantState();
        Drawable.ConstantState icon_down = getDrawable(R.drawable.icon_down).getConstantState();
        Log.e("--->ivArrow$", "$" + ivArrow);
        Log.e("--->icon_up$", "$" + icon_up);
        Log.e("--->icon_down", "$" + icon_down);
        if (ivArrow.equals(icon_up)) {
          binding.ivArrow.setImageResource(R.drawable.icon_down);
        } else if (ivArrow.equals(icon_down)) {
          binding.ivArrow.setImageResource(R.drawable.icon_up);
        }

打印结果如下:

显然通过日志发现,每个图片的资源都不一致,这是为什么,通过点击getDrawable查看源码发现

这个不是我们想要的,我们要的是id,怎么解决呢,因为是在Fragment中,所以要加上 getActivity()

设置完后,看下效果

完整代码如下:

Drawable.ConstantState ivArrow = binding.ivArrow.getDrawable().getCurrent().getConstantState();
        Drawable.ConstantState icon_up = getActivity().getDrawable(R.drawable.icon_up).getConstantState();
        Drawable.ConstantState icon_down = getActivity().getDrawable(R.drawable.icon_down).getConstantState();
        Log.e("--->ivArrow$", "$" + ivArrow);
        Log.e("--->icon_up$", "$" + icon_up);
        Log.e("--->icon_down", "$" + icon_down);
        if (ivArrow.equals(icon_up)) {
          binding.ivArrow.setImageResource(R.drawable.icon_down);
        } else if (ivArrow.equals(icon_down)) {
          binding.ivArrow.setImageResource(R.drawable.icon_up);
        }

到此这篇关于Android中比较两个图片是否一致的文章就介绍到这了,更多相关Android 比较两个图片是否一致内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • android实现动态显隐进度条

    android实现动态显隐进度条

    这篇文章主要为大家详细介绍了android实现动态显隐进度条,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2021-07-07
  • Android开发之activity的生命周期详解

    Android开发之activity的生命周期详解

    这篇文章主要介绍了Android开发之activity的生命周期,详细分析了activity的运行原理与生命周期,需要的朋友可以参考下
    2016-06-06
  • Android实现手机壁纸改变的方法

    Android实现手机壁纸改变的方法

    这篇文章主要介绍了Android实现手机壁纸改变的方法,以完整实例形式分析了Android手机壁纸改变的方法,包括页面布局及属性设置的相关技巧,具有一定参考借鉴价值,需要的朋友可以参考下
    2015-09-09
  • Android Studio导入Eclipse项目的两种方法

    Android Studio导入Eclipse项目的两种方法

    本文主要介绍了Android Studio导入Eclipse项目的两种方法。具有一定的参考价值,下面跟着小编一起来看下吧
    2017-01-01
  • Android Zygote启动构造流程及进程创建详解

    Android Zygote启动构造流程及进程创建详解

    这篇文章主要为大家介绍了Android Zygote启动构造流程及进程创建详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2023-07-07
  • Android开发之ImageLoader本地缓存

    Android开发之ImageLoader本地缓存

    ImageLoader是一个图片缓存的开源库,提供了强大的图片缓存机制,很多开发者都在使用,今天给大家介绍Android开发之ImageLoader本地缓存。对imageloader本地缓存相关知识感兴趣的朋友一起学习吧
    2016-01-01
  • Android中ViewPager实现滑动指示条及与Fragment的配合

    Android中ViewPager实现滑动指示条及与Fragment的配合

    这篇文章主要介绍了Android中ViewPager实现滑动指示条及与Fragment的配合,使用Fragment实现ViewPager的滑动是一种比较推荐的做法,需要的朋友可以参考下
    2016-03-03
  • Android学习之文件存储读取

    Android学习之文件存储读取

    本节给大家介绍的是Android数据存储与访问方式中的一个——文件存储与读写,当然除了这种方式外,我们可以存到SharedPreference,数据库, 或者ContentProvider中,当然这些后面都会讲,嗯,开始本文内容~
    2016-07-07
  • android计算器简单实现代码

    android计算器简单实现代码

    这篇文章主要为大家详细介绍了android计算器的简单实现代码,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2017-03-03
  • Android中的Parcelable序列化对象

    Android中的Parcelable序列化对象

    这篇文章主要介绍了Android中的Parcelable序列化对象,需要的朋友可以参考下
    2016-01-01

最新评论