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