自定义View:BiuImageView

2023年8月7日 pm7:17发布1年前 (2023)更新 城堡大人
368 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、 本站名称: 笔友城堡
2、 本站网址: https://www.biumall.com/
3、 本站部分文章来源于网络,仅供学习与参考,如有侵权,请留言

暂无评论

暂无评论...

随机推荐

[摘]Android SD卡挂载状态

一、 Sd卡挂载主要ACTIONACTION_MEDIA_BAD_REMOVALsd卡已经从sd卡插槽拔出,但是挂载点还没解除ACTION_MEDIA_BUTTON“媒体”按钮被按下ACTION_MEDIA_CHECKING存在外部媒体,磁盘检查挂...

Android截图命令介绍

前言记录一下adb shell截图正文screencap # screencap截图到指定的目录等adb shell screencap -p /sdcard/screen.png# pull到当前目录adb pull /sdcard/screen.pnginput keyeven...

佚名:人就这么一生,要学会把握自己

人就这么一生,要学会把握自己人这一辈子,有多少无可奈何,邂逅多少恩恩怨怨。可是想到人不就这么一辈子吗,有什么看不开的? 人世间的烦恼忧愁,恩恩怨怨几十年后,不都烟消云散了,还有什么不能化解,不能消气的呢? 人就这么一生,我们不能白来这一遭。所以让我们从快乐...

git config时fatal not in a git directory

前言最近通过git config修改邮箱和密码是出行如下异常提示:fatal: not in a git directory记录一下,方便自己查阅正文之前使用git config时也没有出行这样的问题,但最近在客户的虚拟机中折腾就出现了。常用命令git config --listg...

Android startActivity去掉自带的动画效果

Android中startActivity系统自带动画效果,如果需要取消动效,可以考虑如下两种方式。使用overridePendingTransition在启动Activity后添加此代码Intent intent = new Intent(mContext, MainActivity.cl...

Android Studio添加第三方库libs和so

前言这个经常用,但还是忘记了,因此参考网上文章整理于此。本文摘抄内容涉及: 添加so库,添加第三方jar,添加Library库文件等。好记性不如烂笔头正文添加so库方法一:在项目中的src/main里新建jniLibs文件夹把.so复制进去,刷新一下即可方法二:在app/...