长图加载的自定义view。
总结:1.利用Options先得到图片的宽高。
2.通过计算view的宽高得到 缩放因子。
3.利用缩放因子,计算要加载的图片Rect。
4.利用 BitmapRegionDecoder 结合Rect 进行制定区域解码图片。
5.通过 Options.inMutable = true 和Options.inBitmap = bitmap 重复利用Bitmap内存
6.利用缩放因子进行Bitmap矩阵的绘制,达到完全显示图片的效果
package com.example.bigview import android.content.Context import android.graphics.* import android.util.AttributeSet import android.view.GestureDetector import android.view.MotionEvent import android.view.View import android.widget.Scroller import java.io.InputStream /** * 长图加载自定义 view */ class VerticalLoadBigView : View, GestureDetector.OnGestureListener { lateinit var bitmap: Bitmap private var mViewHeight: Int = 0 var mViewWidth: Int = 0 var mRect: Rect //要加载的图片的矩形区域 var mOptions: BitmapFactory.Options //需要复用的 var mGestureDetector: GestureDetector //手势识别 var mImageWidth = 0 var mImageHeigh