PhotoView的使用

作者: 因为我的心 | 来源:发表于2023-05-07 11:20 被阅读0次

    一、前言:

    PhotoView是一个常用的图片预览控件,主要用于Android中大图查看,例如结合ViePager完成朋友圈九宫格图片预览功能,前几天我写的ViewPager分页加载数据这篇博客,可以结合起来使用,PhotoView主要的功能有,图片手势缩放,旋转,相比ImageView,用户体验更好。

    今天我呢主要就介绍两个PhotoView的框架,他们各有所长,第一个是(https://github.com/chrisbanes/PhotoView),这个库,应用非常广泛,start数量极高。第二个是(https://github.com/bm-x/PhotoView),这个支持旋转功能,在我公司的项目也用的是这个库。

    先看一下效果

    图片.png

    二、第一种的使用

    项目地址:

    1、在我们项目module build.gradle中配置

    allprojects {
        repositories {
            maven { url "https://www.jitpack.io" }
        }
    }
    
    buildscript {
        repositories {
            maven { url "https://www.jitpack.io" }
        }   
    }
    
    dependencies {
         implementation 'com.github.chrisbanes:PhotoView:2.3.0'
    }
    

    2、使用

    <com.github.chrisbanes.photoview.PhotoView
        android:id="@+id/photo_view"
        android:layout_width="match_parent"
        android:layout_height="match_parent"/>
    
    
    PhotoView photoView = (PhotoView) findViewById(R.id.photo_view);
    photoView.setImageResource(R.drawable.image);
    

    三、第二种的使用

    项目地址:

    1、Gradle添加依赖 (推荐)

    dependencies {
        compile 'com.bm.photoview:library:1.4.1'
    }
    

    2、xml添加

     <com.bm.library.PhotoView
         android:id="@+id/img"
         android:layout_width="match_parent"
         android:layout_height="match_parent"
         android:scaleType="centerInside"
         android:src="@drawable/bitmap1" />
    

    3、java代码

    注意:设置可以缩放,默认是不支持缩放的。

    PhotoView photoView = (PhotoView) findViewById(R.id.img);
    // 启用图片缩放功能
    photoView.enable();
    // 禁用图片缩放功能 (默认为禁用,会跟普通的ImageView一样,缩放功能需手动调用enable()启用)
    photoView.disenable();
    // 获取图片信息
    Info info = photoView.getInfo();
    // 从普通的ImageView中获取Info
    Info info = PhotoView.getImageViewInfo(ImageView);
    // 从一张图片信息变化到现在的图片,用于图片点击后放大浏览,具体使用可以参照demo的使用
    photoView.animaFrom(info);
    // 从现在的图片变化到所给定的图片信息,用于图片放大后点击缩小到原来的位置,具体使用可以参照demo的使用
    photoView.animaTo(info,new Runnable() {
           @Override
           public void run() {
               //动画完成监听
           }
       });
    // 获取/设置 动画持续时间
    photoView.setAnimaDuring(int during);
    int d = photoView.getAnimaDuring();
    // 获取/设置 最大缩放倍数
    photoView.setMaxScale(float maxScale);
    float maxScale = photoView.getMaxScale();
    // 设置动画的插入器
    photoView.setInterpolator(Interpolator interpolator);
    

    相关文章

      网友评论

        本文标题:PhotoView的使用

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