PhotoView 图片浏览缩放控件

和普通的ImageView一样的使用方法

如使用过程中有任何bug,意见或建议,可邮件给我 bmme@vip.qq.com

下载地址:https://github.com/bm-x/PhotoView

效果图

 

注意

由于facebook的Fresco图片加载组件所加载出来的drawable图片并非真实的drawable,无法直接获取图片真实宽高,也无法直接响应ImageMatrix的变换, 且根据Fresco文档的介绍,在后续的版本中,DraweeView会直接继承自View,所有暂不考虑支持Fresco。 对于其他第三方图片加载库如Glide,ImageLoader,xUtils都是支持的

使用

1.Gradle添加依赖 (推荐)

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

(或者也可以将项目下载下来,将Info.java和PhotoView.java两个文件拷贝到你的项目中,不推荐)

2.xml添加

 <com.bm.library.PhotoViewandroid: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() {@Overridepublic void run() {//动画完成监听}});
// 获取/设置 动画持续时间
photoView.setAnimaDuring(int during);
int d = photoView.getAnimaDuring();
// 获取/设置 最大缩放倍数
photoView.setMaxScale(float maxScale);
float maxScale = photoView.getMaxScale();
// 设置动画的插入器
photoView.setInterpolator(Interpolator interpolator);

版本

v1.4.0

  • 增加对普通ImageView的支持,可通过PhotoView的静态方法getImageViewInfo(ImageView)从一个普通的ImageView中获取Info,参照ImageViewActivity
  • 添加长按事件的监听,setOnLongClickListener()
  • 提高图片缩放到屏幕边缘的情况下滑动的流畅性
  • 新增get/setAnimaDuring() get/setMaxScale 获取设置动画的持续时间和图片最大缩放倍数
  • 通过setInterpolator可设置动画插入器

v1.3.6

  • 增加图片的旋转功能
  • 版本号命名改变

v2.0.7

  • 宽高属性可以设置为wrap_content,添加对adjustViewBounds属性的支持
  • 修复某些情况下会闪动
  • 增加对ScaleType.FIT_START,FIT_END对animaFrom的支持

v2.0.0

  • 添加animaTo,animaFrom方法,支持图片点击放大缩小浏览功能
  • 添加enable()和disenable() 打开和关闭触摸缩放方法,默认打开 (当普通ImageView使用的时候建议关闭触摸缩放功能)
  • 支持所有ScaleType属性

v1.0

移动开发----PhotoView 图片浏览缩放控件相关推荐

  1. [Objective-c] IOS图片浏览小控件

    最近空下来整理一下以前写的一些小控件,这是一个图片浏览的控件,使用Objective-c编写.项目是swift的朋友需要自己bridge一下. 一.功能介绍 当用户点击图片进入图片浏览模式,控件会自动 ...

  2. C#发现之旅 --- WinForm.NET中开发具有固定背景图片的可滚动控件

    摘要 在本文章中笔者使用WinForm.NET2.0开发出一个具有固定背景图片的带滚动条的容器控件.点击下载本文章配套的演示程序 /Files/xdesigner/FixedBackground.zi ...

  3. iOS开发UI基础—手写控件,frame,center和bounds属性

    iOS开发UI基础-手写控件,frame,center和bounds属性 一.手写控件 1.手写控件的步骤 (1)使用相应的控件类创建控件对象 (2)设置该控件的各种属性 (3)添加控件到视图中 (4 ...

  4. visual studio开发工具的C#主流控件属性一览表

    visual studio开发工具的C#主流控件属性一览表 visual studio开发工具的C#主流控件属性一览表 详细的介绍了各控制属性的详细中文介绍 C#控件及常用设计整理 1.窗体  1.常 ...

  5. 在开发中图片浏览遇到的一些简单问题

    在开发中图片浏览遇到的一些简单问题 由于在项目中已经用到了一个第三方框架(MJPhotoBrowser)做图片浏览了,所以就使用了这个框架来做图片的浏览功能. 项目需求 单击图片放大(只可以浏览单张图 ...

  6. 【delphi】开发微信小程序后台控件(一)(含源代码、演示程序、控件使用帮助)

    1. 前言 微信小程序已经非常普及,但是遗憾的是官方提供的 SDK 等没有Delphi语言的,这样使用Delphi语言开发微信小程序后台就相对比较困难,需要研究平台API,费时费力,特别是调试API很 ...

  7. Android百度地图SDK:隐藏比例尺,隐藏百度LOGO,隐藏缩放控件

     Android百度地图SDK:隐藏(不显示)比例尺,隐藏(不显示)百度LOGO,隐藏(不显示)缩放控件 在自己的Android应用开发中使用百度地图SDK,百度会自动在MapView上添加百度的 ...

  8. 类似QQ空间,微信朋友圈,微博主页等,展示图片的九宫格控件

    类似QQ空间,微信朋友圈,微博主页等,展示图片的九宫格控件,自动根据图片的数量确定图片大小和控件大小,使用Adapter模式设置图片,对外提供接口回调,使用接口加载图片,支持任意的图片加载框架,如 G ...

  9. android banner加载布局,Android知识点之图片轮播控件Banner

    Rate this post 在我们来发Android项目时,经常有图片或者广告的轮播功能的需求,下面将介绍一款Android开发时使用的开源图片轮播控件Banner,同时按序讲解如何使用配置这款控件 ...

最新文章

  1. Selenium启动不同浏览器
  2. linux 负数_linux内核提权系列教程(2):任意地址读写到提权的4种方法
  3. android 之Fragment的详解
  4. EMF+GEF的属性页问题
  5. 交叉验证和超参数调整:如何优化您的机器学习模型
  6. react.js app_如何创建Next.js入门程序以轻松引导新的React App
  7. java基础之设计模式
  8. python 取余_玩转Python源码(一) quot;%squot;与“%d”
  9. openssl ssl_write 写错误
  10. C++中4种方式把字符串和数字连接起来(转载)
  11. 【个人笔记】OpenCV4 C++ 快速入门 26课
  12. 网页设计心得HTML心得体会3000,网页制作的心得体会
  13. powerdesign使用手册
  14. java实现第五届蓝桥杯出栈次序
  15. 自定义Exception类
  16. 自己制作dns解析服务器,如何使用自己的DNS服务器解析域名,架设自己的DNS服务器...
  17. python 函数 求绝对值 abs()
  18. Downkyi(哔哩下载姬)绿色便携版V1.4.0 | bilibili视频下载工具 \ B站解析器 -- b站视频怎么下载到电脑?
  19. SCI和SCIE的区别和联系
  20. 腾讯校招课堂|程序员如何在腾讯完成自己的“游戏梦”

热门文章

  1. 语义SLAM论文以及code地址总结
  2. 怎么将png图片转换成jpg
  3. “无法播放视频。很抱歉,无法播放此视频” 错误提示的两个原因
  4. java 解决图片压缩背景色变黑的问题
  5. 【ELASTICSEARCH】ElasticSearch 磁盘满解决方案
  6. windows server 2008防火墙阻止局域网不能访问解决方案
  7. 大数据早报:路桥率先利用“人脸识别”技术监管医保 亚马逊与微软联合开发人工智能,打造服务大众的AI(10.19)
  8. 瑞芯微RV1109平台交叉编译踩坑
  9. 直方图实例详解(颜色直方图、灰度直方图)
  10. 思杰CEO:收购Unidesk将填补技术组合的空白