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

(0)

相关推荐

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

    在Fragment界面中,设置两个图片一致如下: 默认设置图片为: binding.ivArrow.setImageResource(R.drawable.icon_down); 先获取默认图片,再和其它两张图片做对比,然后处理业务逻辑: Drawable.ConstantState ivArrow = binding.ivArrow.getDrawable().getCurrent().getConstantState(); Drawable.ConstantState icon_up = g

  • Android中使用imageviewswitcher 实现图片切换轮播导航的方法

    前面写过了使用ViewFlipper和ViewPager实现屏幕中视图切换的效果(ViewPager未实现轮播)附链接: ANDROID中使用VIEWFLIPPER类实现屏幕切换(关于坐标轴的问题已补充更改) Android 中使用 ViewPager实现屏幕页面切换和页面轮播效果 今天我们在换一种实现方式ImageViewSwitcher. ImageSwitcher是Android中控制图片展示效果的一个控件,如:幻灯片效果 ImageSwitcher粗略的理解就是ImageView的选择器

  • Android中屏幕密度和图片大小的关系详解

    Android中屏幕密度和图片大小的关系详解 前言 Android中支持许多资源,包括图片(Bitmap),对应于bitmap的文件夹是drawable,除了drawable,还有drawable-ldpi.drawable-mdpi.drawable-hdpi.drawable-xhdpi.drawable-xxhdpi等,同一张图片放到上面不同的文件夹中是有区别的,比如一张100 * 100像素大小的图片,分别放在上述各个文件夹中,然后将其设置为ImageView(假设宽高都是wrap_co

  • 如何给Android中的按钮添加图片功能

    在layout中建一个my_login.xml文件 代码如下 <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:Android="http://schemas.android.com/apk/res/android" android:layout_width="fill_parent" android:layout_height="

  • Android中利用matrix 控制图片的旋转、缩放、移动

    本文主要讲解利用android中Matrix控制图形的旋转缩放移动,具体参见一下代码: 复制代码 代码如下: /**  * 使用矩阵控制图片移动.缩放.旋转  */  public class CommonImgEffectView extends View { private Context context ;      private Bitmap mainBmp , controlBmp ;      private int mainBmpWidth , mainBmpHeight , c

  • Android中布局保存成图片实例代码

    一.前言 有一个朋友问做过截屏的小功能没,自己没有做过.但是想了一下,实现的过程.实现截屏就是为了截取咱们应用中的部分布局,然后实现将保存在本地,或将其分享,或将其通过第三方的平台分享出去.自己可能是受了截屏这两个字的影响,想当然的去梳理自己的实现思路. 1:截屏,调用系统的截屏功能区实现截屏. 2:对图片进行处理:截屏是截取的手机的全屏,因为我们是需要截取我们的应用的某一部分,所以我们需要去通过剪切裁剪,去裁剪出自己想要保留的一部分(实质也就是保存布局). 3:后续也许还要处理系统截屏功能本身

  • Android中Glide加载图片并实现图片缓存

    今天工作中遇到Glide的缓存问题,之前在项目中一直用Glide加载本地及网络图片,但是没有考虑过缓存的问题,但是需求中需要提到了,所以在网上查了一下,再这里和大家简单的分享一下Glide的使用方法以及缓存 首先,Glide是Github上开源的一个图片库,作者是bumptech,所以要使用的话,必须添加依赖: compile 'com.github.bumptech.glide:glide:3.6.1' 加载方式: Glide.with(context) .load("https://ss0.

  • Android中ImageView.src设置图片拉伸、填满控件的方法

    问题 ImageView.src设置图片资源,图片不拉伸了,却有空隙部分: <LinearLayout android:id="@+id/linearLayout1" android:layout_width="wrap_content" android:layout_height="wrap_content" android:orientation="vertical" > <ImageView andro

  • Android中截取当前屏幕图片的实例代码

    复制代码 代码如下: /**     * 获取和保存当前屏幕的截图     */    private void GetandSaveCurrentImage()      {          //1.构建Bitmap          WindowManager windowManager = getWindowManager();          Display display = windowManager.getDefaultDisplay();          int w = d

  • Android中RecyclerView 滑动时图片加载的优化

    RecyclerView 滑动时的优化处理,在滑动时停止加载图片,在滑动停止时开始加载图片,这里用了Glide.pause 和Glide.resume.这里为了避免重复设置增加开销,设置了一个标志变量来做判断. mRecyclerView.addOnScrollListener(new RecyclerView.OnScrollListener() { @Override public void onScrollStateChanged(RecyclerView recyclerView, in

随机推荐