android 加载长图

长图加载的自定义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
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值