photoview源码解析

条件:

  • 上几篇讲述了Matrix类进行图像变换

  • ScaleType的种类

    ScaleType.CENTER

      是保持原图大小,以原图的几何中心点和ImagView的几何中心点为基准,只绘制ImagView大小的图像

    ScaleType.CENTER_CROP

      不保持原图大小,以原图的几何中心点和ImagView的几何中心点为基准,只绘制ImagView大小的图像(以填满ImagView为目标,对原图进行裁剪)。

    ScaleType.CENTER_INSIDE

      不保持原图大小,以原图的几何中心点和ImagView的几何中心点为基准,只绘制ImagView大小的图像(以显示完整图片为目标,对原图进行缩放)。

    ScaleType.FIT_CENTER

      是将原图沿上方居中的点(即matrix方式绘图第一行的居中的点),按比例缩放原图绘制而成的。

    ScaleType.FIT_START

      是将原图沿左上角的点(即matrix方式绘图开始的点),按比例缩放原图绘制而成的。

    ScaleType.FIT_END

      是将原图沿下方居中的点(即matrix方式绘图最后一行的居中的点),按比例缩放原图绘制而成的。

    ScaleType.FIT_XY

      是将原图进行横方向(即XY方向)的拉伸后绘制的

  •  RectF用法

    •   矩形类(四个参数 left 左的边的X坐标 top 上的边的Y左边 right 右的边的X坐标 bottom 底部的边的Y坐标)
  •   ViewTreeObserver还有如下内部类

    • interface ViewTreeObserver.OnGlobalFocusChangeListener。当在一个视图树中的焦点状态发生改变时,所要调用的回调函数的接口类
    • interface ViewTreeObserver.OnGlobalLayoutListener。当在一个视图树中全局布局发生改变或者视图树中的某个视图的可视状态发生改变时,所要调用的回调函数的接口类
    • interface ViewTreeObserver.OnPreDrawListener。当一个视图树将要绘制时,所要调用的回调函数的接口类 
    • interface ViewTreeObserver.OnScrollChangedListener。当一个视图树中的一些组件发生滚动时,所要调用的回调函数的接口类 
    • interface ViewTreeObserver.OnTouchModeChangeListener。当一个视图树的触摸模式发生改变时,所要调用的回调函数的接口类

  

原文地址:https://www.cnblogs.com/could-deng/p/5038732.html