photoview源码地址:

https://github.com/chrisbanes/PhotoView

PhotoView旨在简单的实现对图片的放大及缩小功能

使用方法如下:

1、先在根build.gradle加入如下代码

allprojects {repositories {maven { url "https://jitpack.io" }}
}
2、然后在项目文件下加入 
dependencies {implementation 'com.github.chrisbanes:PhotoView:latest.release.here'
}
3、用法比较简单
<com.github.chrisbanes.photoview.PhotoViewandroid: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);
注意事项:
photoview 在放置于一些Viewgroups中,尤其是viewpager 或drawerlayout 时会出现

一些异常情况,为了防止这种情况的发生,可以仿照HackyDrawerLayout 来进行导演处理

public class HackyProblematicViewGroup extends ProblematicViewGroup {public HackyProblematicViewGroup(Context context) {super(context);}@Overridepublic boolean onInterceptTouchEvent(MotionEvent ev) {try {return super.onInterceptTouchEvent(ev);} catch (IllegalArgumentException e) {//uncomment if you really want to see these errors//e.printStackTrace();return false;}}
}

熟悉PhotoView的使用方法及其源码学习相关推荐

  1. Mybatis拦截器的使用及其源码详解

    Mybatis拦截器的使用及其源码详解 Mybatis相关全览 一.简介 执行与添加顺序 拦截器生效入口 二.使用 例子 三.原理 加载入口 生成代理 遍历拦截器 匹配&生成代理 四.实践例子 ...

  2. 创建线程的三种方法_Netty源码分析系列之NioEventLoop的创建与启动

    前言 前三篇文章分别分析了 Netty 服务端 channel 的初始化.注册以及绑定过程的源码,理论上这篇文章应该开始分析新连接接入过程的源码了,但是在看源码的过程中,发现有一个非常重要的组件:Ni ...

  3. 码出高效:Java开发手册笔记(线程池及其源码)

    码出高效:Java开发手册笔记(线程池及其源码) 码出高效:Java开发手册笔记(线程池及其源码) 码出高效:Java开发手册笔记(线程池及其源码) 前言 一.线程池的作用 线程的生命周期 二.线程池 ...

  4. Feign的调用原理及其源码分析

    Feign的调用原理及其源码分析 目录 概述 架构特性 设计思路 实现思路分析 Feign是如何进行服务调用的 拓展实现 相关工具如下: 实验效果:(解决思路) 分析: 小结: 参考资料和推荐阅读 L ...

  5. 【Android 异步操作】AsyncTask 异步任务 ( AsyncTask 异步任务执行方法 execute 方法相关源码解析 )

    文章目录 一.AsyncTask 异步任务执行方法 execute() 引入 二.AsyncTask 异步任务执行方法 execute() 三.sDefaultExecutor 线程池解析 四.exe ...

  6. 【转载】进程间的通信之剪贴板方法实现源码

    1 源码无私奉献 2 3 void CClipboardDlg::OnBnClickedButton1() 4 { 5 // TODO: 在此添加控件通知处理程序代码 6 //打开剪贴板 7 if(O ...

  7. a5松下驱动器参数设置表_松下伺服几个参数需要熟悉并掌握设置方法

    松下伺服参数共有200多个,但一般的控制场合只需要掌握少数几个即可.伺服系统有位置控制.速度控制.转矩控制以及三者的组合等多种控制模式,但大多数场合都是将伺服系统用于精密定位,其次是转矩控制,速度控制 ...

  8. Javascript笔记:(实践篇)从jQuery插件技术说起-分析extend方法的源码(发现extend方法里有bug)(下篇)...

    1.1     分析$.extend源码 在分析源码之前,我还要加一段s测试代码,代码如下: <script type="text/javascript"> $(doc ...

  9. 使用ajax获取后台数据怎么打印,我用ajax获取后台数据并展示在前端页面的方法【源码】...

    <我用ajax获取后台数据并展示在前端页面的方法[源码]>由会员分享,可在线阅读,更多相关<我用ajax获取后台数据并展示在前端页面的方法[源码](2页珍藏版)>请在人人文库网 ...

最新文章

  1. python函数名的语法_Python 基础语法六 ——函数
  2. 今天,开源中国出了一条广告史上最“正直”的广告
  3. OpenCASCADE绘制测试线束:几何命令之曲线和曲面修改
  4. 【机器视觉】 dev_update_time算子
  5. 牛客网_PAT乙级_1027在霍格沃茨找零钱(20)
  6. 赵雅智:service_startService生命周期
  7. 如何学习(记住)linux命令(常用选项)
  8. 大学计算机二级培训蹭课,本人在复旦大学蹭课总结的一点小小的经验
  9. 节省服务器成本50%以上!独角兽完美日记电商系统容器化改造实践
  10. win10创建新的计算机用户名和密码错误,Win10开机提示用户名或密码不正确现象的解决办法...
  11. 【数据库基础知识】plsql安装及配置
  12. android adb模拟鼠标滚动,adb shell 模拟鼠标导入通讯录
  13. 与阿里合伙人合影,两年净赚一百万,这个草根姑娘有什么魔力?
  14. Strawberry Perl 所有版本链接
  15. poj1639 Picnic Planning 最小度数限制生成树
  16. 频谱 功率谱 功率谱密度
  17. Pentaho Report Designer 教程(一)初识
  18. 计算机公共课5——演示文稿软件 PowerPoint 2010
  19. 密码学实验-RSA算法的几种攻击方法的实现
  20. Redis之父Antirez谈副业与主业

热门文章

  1. 获取当月第一天和最后一天、获取前月的最后一天
  2. 每日学术速递5.23
  3. Qt:鼠标事件(鼠标移动事件、鼠标按下事件、鼠标释放事件、进入窗口区域、离开窗口区域)
  4. 只需解决这几件事,即可轻松玩转黑苹果系统虚拟机
  5. linux查找某时间段文件夹,shell查找指定时间段内的文件
  6. Windows Mobile手机常见CPU介绍
  7. 曲堤黄瓜批发市场:小黄瓜用上云计算 蔬菜收购结算刷卡就走
  8. BDD,TDD和DDD的
  9. pytorch mnist vgg16 错误记录
  10. Vue实战开发移动端旅游网站