日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区

您的位置:首頁技術文章
文章詳情頁

Android加載長圖的多種方案分享

瀏覽:47日期:2022-09-19 08:42:59
背景介紹

在某些特定場景下,我們需要考慮加載長圖的需求,比如加載一幅《清明上河圖》,這個好像有點過分了,那就加載1/2的《清明上河圖》吧... 那TMD還不是一樣道理。

言歸正傳說一下我這邊遇到的情況,之前有圖片或大圖的模塊是劃分為H5來實現的,現在需求變更劃分為原生開發,那么問題就來了。

圖片尺寸為

Android加載長圖的多種方案分享

圖片大小為

Android加載長圖的多種方案分享

這一刻我是懵逼的,哪個端圖片上傳的時候沒限制尺寸和壓縮?mdzz, 吐槽歸吐槽,還是要擼起袖子解決加載長圖大圖的問題。 先提供幾個技術方案來對比一下:

方案1:WebView加載渲染

因為圖片本身也是一個URL地址,也是被WebView渲染,并且支持縮放。這是一種實現方案,遇到幾M的大圖WebView也是會崩潰Crash,所以這種投機的方式并不推薦。

方案2:BitmapRegionDecoder

分片加載,使用系統BitmapRegionDecoder去加載本地的圖片,調用bitmapRegionDecoder.decodeRegion解析圖片的矩形區域,返回bitmap,最終顯示在ImageView上。這種方案需要手動處理滑動、縮放手勢,網絡圖片還要處理緩存策略等問題。實現方式比較繁瑣也不是很推薦。

方案3:SubsamplingScaleImageView

一款封裝BitmapRegionDecoder的三方庫,已經處理了滑動,縮放手勢。我們可以考慮選擇這個庫來進行加載長圖,但是官方上的Demo示例加載的長圖均為本地圖片。這可能并不符合我們的網絡場景需求,所以對于網絡圖片,我們還要考慮不同的加載框架,

SubsamplingScaleImageView Git傳送門

方案4:Glide+SubsamplingScaleImageView混合加載渲染

對于圖片加載框架,Glide當然是首選,我們使用Glide進行網絡圖片的下載和緩存管理,FileTarget作為橋梁,SubsamplingScaleImageView進行本地資源圖片的分片加載,看起來很靠譜,那么一起來實現吧。

Glide Git傳送門

SubsamplingScaleImageView Git傳送門

fun loadLargeImage(context: Context, res: String, imageView: SubsamplingScaleImageView) { imageView.isQuickScaleEnabled = true imageView.maxScale = 15F imageView.isZoomEnabled = true imageView.setMinimumScaleType(SubsamplingScaleImageView.SCALE_TYPE_CUSTOM) Glide.with(context).load(res).downloadOnly(object : SimpleTarget<File?>() {override fun onResourceReady(resource: File, glideAnimation: Transition<in File?>?) { val sWidth = BitmapFactory.decodeFile(resource.absolutePath).width val sHeight = BitmapFactory.decodeFile(resource.absolutePath).height val wm = ContextCompat.getSystemService(context, WindowManager::class.java) val width = wm?.defaultDisplay?.width ?: 0 val height = wm?.defaultDisplay?.height ?: 0 if (sHeight >= height && sHeight / sWidth >= 3) {imageView.setMinimumScaleType(SubsamplingScaleImageView.SCALE_TYPE_CENTER_CROP)imageView.setImage(ImageSource.uri(Uri.fromFile(resource)), ImageViewState(0.5f, PointF(0f, 0f), 0)) } else {imageView.setMinimumScaleType(SubsamplingScaleImageView.SCALE_TYPE_CUSTOM)imageView.setImage(ImageSource.uri(Uri.fromFile(resource)))imageView.setDoubleTapZoomStyle(SubsamplingScaleImageView.ZOOM_FOCUS_CENTER_IMMEDIATE) }}override fun onLoadFailed(errorDrawable: Drawable?) { super.onLoadFailed(errorDrawable)} })}

這是我封裝起來的一個方法,就很簡單就能理解了, 包括SubsamplingScaleImageView的縮放設置,默認展示狀態、縮放、位置,計算當前圖片高寬比為3倍進行長圖渲染處理,否則按正常圖片渲染處理。

最后快用下面的這張完整版《清明上河圖》來試一試效果吧~ 贊

Android加載長圖的多種方案分享

以上就是Android加載長圖的多種方案分享的詳細內容,更多關于Android加載長圖的資料請關注好吧啦網其它相關文章!

標簽: Android
相關文章:
日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区
亚洲黄色免费av| 99在线精品免费视频九九视| 久久精品国产成人一区二区三区| 一区二区亚洲视频| 久久久噜噜噜| 成人av二区| 免费人成网站在线观看欧美高清| 中文字幕乱码亚洲无线精品一区| 四虎精品一区二区免费| 嫩草伊人久久精品少妇av杨幂| 国产成人精品一区二区三区免费 | 黄色网一区二区| 色88888久久久久久影院| 中文日韩在线| 免费视频一区二区三区在线观看| 波多视频一区| 亚洲精品动态| 欧美日韩国产观看视频| 亚洲网址在线观看| 超碰在线99| 亚洲激情欧美| 欧美aⅴ一区二区三区视频| 久久在线免费| 国产欧美一区| 久久福利影视| 激情国产在线| 久久国产精品免费一区二区三区| 国产高清不卡| 91亚洲精品在看在线观看高清| 日韩中文在线播放| 国产美女久久| 蜜臀a∨国产成人精品| 日韩国产专区| 麻豆精品在线播放| 蜜臀久久99精品久久久画质超高清 | 免费精品一区| 日韩制服丝袜av| 亚洲伦乱视频| 黄毛片在线观看| 久久精品免视看国产成人| 日韩精品1区2区3区| 亚洲午夜91| 国产在线视频欧美一区| 91精品国产自产观看在线| 亚洲一区二区三区免费在线观看| 老牛影视精品| 天堂中文av在线资源库| 国产在线不卡一区二区三区| 国产精品久久久久久久久久妞妞| 综合色就爱涩涩涩综合婷婷| 欧美午夜不卡| 伊人久久成人| 99在线观看免费视频精品观看| 波多野结衣一区| 中文一区二区| 蜜桃一区二区三区在线观看| 久久国产精品久久w女人spa| 99精品美女| 欧美国产小视频| 日韩精品网站| 欧美午夜精彩| 久久中文字幕av一区二区不卡| 亚洲综合在线电影| 日韩在线精品| 亚洲h色精品| 亚洲综合精品| 久久午夜精品| 日韩一区中文| 久久的色偷偷| 日本美女一区| 蜜臀久久99精品久久久画质超高清| 亚洲一级大片| 欧美另类中文字幕 | 欧美精品91| 91亚洲成人| 视频福利一区| 午夜在线精品偷拍| 国产欧美日韩一级| 精品一区二区三区的国产在线观看| 欧美成a人片免费观看久久五月天| 久久精品国产成人一区二区三区| 桃色av一区二区| 影音先锋久久精品| 日韩不卡一二三区| 免费精品一区| 在线日韩av| 色婷婷成人网| 福利欧美精品在线| 日韩在线a电影| 国产精品夜夜夜| 成人午夜国产| 国产精品欧美一区二区三区不卡| 红杏一区二区三区| 99re国产精品| 国产传媒在线观看| 亚洲三级av| 激情综合网站| 成人国产综合| 日韩欧美中文在线观看| 伊人久久视频| 美女久久99| 日本一区免费网站| 欧美亚洲激情| 国产一区二区三区天码| 97精品国产99久久久久久免费| 婷婷激情图片久久| 激情黄产视频在线免费观看| 青草久久视频| 日韩精品一区二区三区av| 亚洲欧洲日本mm| 亚洲网站视频| 欧美日韩亚洲在线观看| 电影91久久久| 国产精品黄色| 日韩超碰人人爽人人做人人添| 亚洲欧美视频一区二区三区| 999国产精品999久久久久久| 国产99在线| 国产精品yjizz视频网| 国产精品国产一区| 国产精品1luya在线播放| 国产精品日本一区二区三区在线| 午夜性色一区二区三区免费视频| 视频在线观看一区| 亚洲理论在线| 天堂精品久久久久| 国产日本久久| 黄色欧美在线| 亚洲黄色中文字幕| 99久久www免费| 美女久久一区| 91精品啪在线观看国产爱臀| 国产欧美二区| 国产一区二区精品久| 最新中文字幕在线播放| 韩国精品主播一区二区在线观看 | 免费看日韩精品| 亚洲免费专区| 国产欧美一区| 亚洲天堂av影院| 国产偷自视频区视频一区二区| 男人的天堂久久精品| 国产午夜久久av| 成人小电影网站| 视频一区二区中文字幕| 国产日韩欧美三区| 国产亚洲一区二区手机在线观看 | 欧美日韩va| 午夜av成人| 日韩中文字幕一区二区高清99| 你懂的亚洲视频| 亚洲综合日本| 国产a久久精品一区二区三区| 国产一区二区三区自拍| 日韩影片在线观看| 欧洲av一区二区| 国产精品网址| 久久国产成人| 成人在线网站| 国产精品一区二区精品视频观看| 午夜精品网站| 国产麻豆一区二区三区精品视频| 日韩毛片视频| 欧美国产中文高清| 亚洲精品人人| 免费精品国产| 日韩不卡一区| 国产乱码精品一区二区亚洲| 欧美日韩国产一区二区三区不卡| 国产精品xvideos88| 亚洲在线久久| 国产精品视区| 蜜臀91精品国产高清在线观看| 美女免费视频一区| 国产日韩一区二区三区在线| 亚洲欧洲一区| 天堂√8在线中文| 国产精品蜜芽在线观看| 久久男人av| 麻豆国产精品视频| 欧美国产日韩电影| 欧美日韩一区二区高清| 免费美女久久99| 免费观看在线综合| 亚洲ww精品| 亚洲精品婷婷| 日韩va欧美va亚洲va久久| 在线精品国产亚洲| 亚洲精选久久| 国产亚洲精品美女久久| 国产麻豆精品| 国产精品久久久一区二区| 久久99蜜桃| 国产成人黄色| 日韩天堂在线| 日韩视频在线一区二区三区 | 欧美色图一区| 乱人伦精品视频在线观看| 免费人成在线不卡| 四虎精品一区二区免费|