BiuImageView的使用

Android  代码片段  2023年8月11日 am8:08发布1年前 (2023)更新 91es.com站长
35 0 0

前言

BiuImageView是之前山寨PhotoView自定义View:山寨PhotoView》基础上重构的一个新版本自定义View:BiuImageView,也优化了很多。

今天就简单的用一下BiuImageView。

正文

什么是BiuImageView

我们知道有个开源的Baseflow的PhotoView

PhotoView 是一款扩展自 Android ImageView ,支持通过单点 / 多点触摸来进行图片缩放的智能控件。

特性:

  1. 支持单点 / 多点触摸,即时缩放图片;

  2. 支持平滑滚动;

  3. 在滑动父控件下能够运行良好;(例如:ViewPager)

非常不错,但有时候满足不了项目的需求,因此自己写了一个类似PhotoView。一开始是叫山寨PhotoView(《自定义View:山寨PhotoView》),这个版本能用,但也有些缺点。

因此,抽空重构了一个新的版本,正名为BiuImageView。

哈哈哈,只是符合我自己需求,不一定符合你们的需求哈。

BiuImageView的使用

直接上代码

初始化
mBiuImageView = findViewById(R.id.main_iv_image_view);
//非全屏高宽[1720,720]和全屏高宽[1920,720]
//默认非全屏高宽[1720,720]
mBiuImageView.initViewSize(1720, 720);
mBiuImageView.setResetListener(this);
mBiuImageView.setDoubleTapListener(this);
mBiuImageView.setSingleTapListener(this);
mBiuImageView.setScaleChangedListener(this);
mBiuImageView.setViewSizeListener(this);
# 旋转
private void setRotate(float degrees) {
    if (null != mBiuImageView) {
        mBiuImageView.setRotation(degrees);
    }
}
# 放大
public void zoomIn() {
    if (null != mBiuImageView) {
        mBiuImageView.zoomIn();
    }
}
# 缩小
public void zoomOut() {
    if (null != mBiuImageView) {
        mBiuImageView.zoomOut();
    }
}
# 恢复默认
public void reset() {
    if (null != mBiuImageView) {
        mBiuImageView.reset(true);
    }
}
图片的加载

这里用Glide

implementation 'com.github.bumptech.glide:glide:4.13.1'
//是否正在加载图片,默认不是
boolean mImageLoading = false;

隐藏内容!
付费阅读后才能查看!
2
3
多个隐藏块只需支付一次

全屏和非全屏切换

隐藏内容!
付费阅读后才能查看!
2
3
多个隐藏块只需支付一次

参考文章

  1. 自定义View:BiuImageView

  2. 自定义View:山寨PhotoView

 历史上的今天

  1. 2022: bootprof文件分析系统开机时间(0条评论)
  2. 2019: 叔本华:比读书更重要的是什么(0条评论)
版权声明 1、 本站名称: 91易搜
2、 本站网址: 91es.com3xcn.com
3、 本站内容: 部分来源于网络,仅供学习和参考,若侵权请留言
3、 本站申明: 个人流水账日记,内容并不保证有效

暂无评论

暂无评论...

随机推荐

毕淑敏:世上千寒,心中永暖

记得当年做医学生实习时,轮到去产科学接生。见那刚生下来的宝宝,一出母体,便放声大哭。倘在别处,听到有人痛嚎,众人必是关切不安,以示慰问。在产科接生室内,哭声便是捷报。若是不闻哭声,助产士便要心焦了。民间流传说,老式的接生婆如果听不到新生儿哭,会立马把孩子头朝下倒拎着,在屁股上猛砸几巴掌,娃儿惊哭出来...

[代码片段]GradientTextView渐变的TextView

前言本质上就是通过LinearGradient来实现渐变的正文public class GradientTextView extends androidx.appcompat.widget.AppCompatTextView { public GradientTextView(Context...

毕淑敏:你不能要求没有风暴的海洋

痛苦和磨难是人生不可分割的一部分。只有接受这一事实,我们才能超越它,更加看清生命的意义。你说你不要这些苦难,那么生命也就失去了框架。很多自杀的人,就是因为没有理会这种意义,一厢情愿地认为生命是应该只有甘甜没有挫败的。特别是在恋爱早期,那种汹涌的荷尔蒙带来的欢愉,让人把激情当成了常态。生命的常态,其...

java.lang.ClassNotFoundException

在工作中遇到Caused by: java.lang.ClassNotFoundException: Didn’t find class “XXX” on path: DexPathList[[zip file“/data/app/net.sourceforge.simcpux-2.apk”],n...

刘亮程:最后一只猫

我们家的最后一只猫也是纯黑的,样子和以前几只没啥区别,只是更懒,懒得捉老鼠不说,还偷吃饭菜馍馍。一家人都讨厌它。小时候它最爱跳到人怀里让人抚摸,小妹燕子整天抱着它玩。它是小妹无数的几件玩具中的一个,摆家家时当玩具一样将它摆放在一个地方,它便一动不动,眼睛跟着小妹转来转去,直到它被摆放到另一个地方,还...

Lambda编程简介

前言简单记录一下Lambda编程相关知识,方便自己查阅和学习。这里重点是理解lambda作为函数参数的使用。正文Lambda表达式Lambda表达式就是一个匿名函数,它是函数式编程的基础,所谓函数式编程实际上就是一种编程范式,即如何编写程序的方法论。函数式编程的思想是将计算机运算视为函数...