自定义View:BiuImageView

2023年8月7日 pm7:17发布1年前 (2023)更新 91es.com站长
340 0 0

前言

之前整理过一个山寨PhotoView,也就是《自定义View:山寨PhotoView》,占了Baseflow的PhotoView的光。

后来有空,重新整理一下,出了一个新的版本,给其正名为BiuImageView。

很早就重写了,只是没时间更新和验证。

正文

BiuImageView是在山寨PhotoView是重构的,支持的功能也是一样的,接口也更丰富和实用。

  1. 支持左右旋转

  2. 支持缩放大小

  3. 支持双击点击处放大

  4. 支持手势缩放

  5. 支持手势移动

等,具体看下面使用

下载

隐藏内容!
评论可看后才能查看!

使用

//恢复默认(true有setResetListener的回调)
mBiuImageView.reset(true);
//显示区变化时恢复默认
mBiuImageView.resetView();
//设置旋转角度,支持+-
mBiuImageView.setRotation(90);//旋转90度
//获取当前scale
mBiuImageView.getCurrentScale();
//加载图片[一般Glide或picasso]
mBiuImageView.setImageDrawable(getDrawable(R.drawable.ic_launcher_foreground));
//设置监听
mBiuImageView.setResetListener(this);//恢复默认监听
mBiuImageView.setDoubleTapListener(this);//双击监听
mBiuImageView.setSingleTapListener(this);//单击监听
mBiuImageView.setScaleChangedListener(this);//图片scale变化监听
mBiuImageView.setViewSizeListener(this);//显示区高宽变化监听
//放大
mBiuImageView.zoomIn();
//设置放大系数( 1 , ∞ )  值越大变化越快
mBiuImageView.setZoomInScaleFactor(1.1f);//默认值
//缩小
mBiuImageView.zoomOut();
//设置缩小系数( 0 , 1 )  值越小变化越快
mBiuImageView.setZoomOutScaleFactor(0.9f);//默认值
//设置缩放最小scale
mBiuImageView.setMinScale(0.2f);//默认值
//设置缩放最大scale
mBiuImageView.setMaxScale(5.0f);//默认值
//设置双击放大scale
mBiuImageView.setTapDScale(5.0f);//默认值
//是否可以双击
mBiuImageView.setCanDoubleTap(true);
//是否可以多点拖动图片
mBiuImageView.setCanPointerMove(true);
注意事项

正常情况,都用这个reset()方法可以恢复默认,但在改变View显示区域(高宽)时又要恢复默认,那就需要使用resetView()。

参考文章

  1. 自定义View:山寨PhotoView

赏一杯可乐

如果觉得OK,欢迎打赏一杯可乐哈,谢谢

有bug,欢迎留言

版权声明 1、 本站名称: 91易搜
2、 本站网址: 91es.com3xcn.com
3、 本站内容: 部分来源于网络,仅供学习和参考,若侵权请留言
3、 本站申明: 个人流水账日记,内容并不保证有效

暂无评论

暂无评论...

随机推荐

去除Notification提示音

前言Android开机时,notification通知会有提示音。这个是之前写的,重新摘抄于此。正文修改地方\androidp\frameworks\base\services\core\java\com\android\server\notification\Notificatio...

CarAudioManager方法简介

前言参考别人文章,看Android中车载部分CarAudioManager类中部分方法的介绍。正文简单记录一下CarAudioManager中方法的说明。packages\services\Car\car-lib\src\android\car\media\CarAudioManager....

Android多线程介绍

前言记录一下Android主线程,子线程等相关知识。我们知道Android3.0后如果在主线程进行网络请求是会抛出异常的,这是为了避免主线程被耗时操作阻塞从而导致ANR。因此有必要学习一下子线程相关知识。正文搞懂什么是线程前,也需要搞懂什么是进程。什么是进程进程是操作系统结构的基础。...

AudioTrack简单简介之四:wav去掉文件头之解决爆音

其实这个是我自己对WAV头文件没有理解对,应该早就解决了的。看图WAV文件头信息由大小44个字节的数据组成:4字节数据,内容为“RIFF”,表示资源交换文件标识4字节数据,内容为一个整数,表示从下个地址开始到文件尾的总字节数4字节数据,内容为“WAVE”,表示WAV文件标识4字节数...

Linux signal 常见的信号含义表

前言简单记录一下Linux signal 常见的信号含义。PS : 本文摘抄,只是方便自己查阅而已。正文信号表 SIGHUP       1       /* Hangup (POSIX). */                         终止进程     终端线路挂断S...

ADB更改系统设置中的参数

 Android4.2以后的源码android-17\com\android\commands目录下较之前的版本多了一个settings命令,查看其中的SettingsCmd.java文件,末尾有命令的帮助信息:private static void printUsage() { ...