栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 移动开发 > Android

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

Android 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

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 比较两个图片是否一致内容请搜索考高分网以前的文章或继续浏览下面的相关文章希望大家以后多多支持考高分网!

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/153717.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号