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

您的位置:首頁技術(shù)文章
文章詳情頁

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

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

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

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

圖片尺寸為

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

圖片大小為

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

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

方案1:WebView加載渲染

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

方案2:BitmapRegionDecoder

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

方案3:SubsamplingScaleImageView

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

SubsamplingScaleImageView Git傳送門

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

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

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的縮放設(shè)置,默認展示狀態(tài)、縮放、位置,計算當前圖片高寬比為3倍進行長圖渲染處理,否則按正常圖片渲染處理。

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

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

以上就是Android加載長圖的多種方案分享的詳細內(nèi)容,更多關(guān)于Android加載長圖的資料請關(guān)注好吧啦網(wǎng)其它相關(guān)文章!

標簽: Android
相關(guān)文章:
日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区
国产福利91精品一区二区| 99视频一区| 国产精品手机在线播放| 国产精品久久乐| 高清av一区| 激情偷拍久久| 日韩激情网站| 欧美一区网站| 国产欧美一区二区三区米奇| 欧美精品99| 一本一道久久a久久精品蜜桃| 日韩在线播放一区二区| 国产精品极品| 午夜欧美理论片| 欧美日韩国产传媒| 天堂av一区| sm捆绑调教国产免费网站在线观看 | 高清日韩欧美| 丝袜美腿一区二区三区| 欧美一区自拍| 91精品二区| 欧美国产中文高清| 国产精品美女久久久| 另类欧美日韩国产在线| 美女国产一区| 成人看片网站| 国产日韩精品视频一区二区三区| av日韩中文| 国产精品调教视频| 视频一区在线播放| 日本欧美不卡| 国产欧美大片| 国产色综合网| 日韩高清不卡| 精品久久久网| 欧美成人精品| 久久的色偷偷| 日本国产欧美| 日韩专区一卡二卡| 亚洲天堂成人| 福利一区二区免费视频| 日韩和欧美一区二区| 免费视频久久| 国产高清一区二区| 久久天堂成人| 久久九九精品| 亚洲伦乱视频| 麻豆成人91精品二区三区| 日韩国产91| 日本天堂一区| 国产欧美一区二区三区精品观看 | 国产一区视频在线观看免费| 成人影视亚洲图片在线| 国产精品亚洲四区在线观看| 欧美日韩va| 欧美a一区二区| 精品女同一区二区三区在线观看| 国产精品久久久久77777丨| 欧美综合国产| www在线观看黄色| 欧美成人基地| 影音先锋国产精品| 亚洲性视频在线| 88久久精品| 成人国产综合| 性欧美69xoxoxoxo| 天堂成人国产精品一区| 日本中文字幕视频一区| 国产精品色在线网站| 久久精品福利| 久久久水蜜桃av免费网站| 国产亚洲一级| 国产美女久久| 精品伊人久久| 久久蜜桃精品| 视频精品一区二区| 国产精品资源| 激情五月色综合国产精品| 亚洲精品乱码久久久久久蜜桃麻豆| 日韩国产成人精品| 97在线精品| 一本综合精品| 国产66精品| 蜜臀av在线播放一区二区三区| 日本欧美一区| 欧美一区二区性| 亚洲精一区二区三区| 日本在线视频一区二区| 成人国产精品久久| 久久三级福利| 亚洲精品激情| 国产精品成人国产| 午夜精品成人av| aa亚洲婷婷| 日韩和欧美一区二区| 久久影视三级福利片| 一级欧洲+日本+国产| 欧美激情在线精品一区二区三区| 日韩在线第七页| 国产精品久久久网站| 男女激情视频一区| 久久人人99| 久久xxx视频| 婷婷久久免费视频| 日韩高清中文字幕一区| 日本不良网站在线观看| 色综合视频一区二区三区日韩| 国产精品99视频| 久久精品99国产精品| 午夜日韩av| 高清av不卡| 久久av中文| 亚洲一区国产| 色婷婷色综合| 久久久久久久欧美精品| 性欧美69xoxoxoxo| 久久精品卡一| 久久丁香四色| 国产乱人伦丫前精品视频| 首页国产欧美日韩丝袜| 久久人人88| 91精品蜜臀一区二区三区在线 | 欧美日韩一视频区二区| 美女毛片一区二区三区四区 | 婷婷亚洲五月| 国产精品99在线观看| 四虎在线精品| 亚洲欧美视频一区二区三区| 香蕉久久久久久| 免费一级片91| 久久高清免费观看| 福利精品在线| 国产九九精品| 欧美自拍一区| 欧美一区成人| 亚洲精品一二三**| 国产综合精品一区| 亚洲国内精品| 欧美精品羞羞答答| 最新国产拍偷乱拍精品| 国产 日韩 欧美一区| 精品免费视频| 精品九九久久| 日本不卡免费高清视频在线| 秋霞影院一区二区三区| 久久久精品五月天| 精精国产xxxx视频在线播放| 午夜欧美精品久久久久久久| 国产精品丝袜xxxxxxx| 丝袜美腿亚洲色图| 99在线精品免费视频九九视| 亚洲欧美日本国产专区一区| 欧美片网站免费| 国模大尺度视频一区二区| 日韩欧美精品一区| 亚洲一区中文| 日韩久久99| 午夜久久黄色| 日韩中文字幕高清在线观看| 国产精品亚洲二区| 精品一级视频| 最新日韩欧美| 日韩精品欧美精品| 日韩国产成人精品| 久久精品一区| 黄色不卡一区| 日韩精品亚洲专区| 美女性感视频久久| 色婷婷精品视频| 亚洲二区视频| 日韩一区二区三区高清在线观看| 日日夜夜免费精品视频| 精品免费av一区二区三区| 蜜桃tv一区二区三区| 国产伦精品一区二区三区在线播放| 免费在线小视频| 四虎精品永久免费| 国内精品福利| 精品91福利视频| 欧美日韩1区2区3区| 98精品视频| 精品视频91| 亚洲1区在线观看| 久久av一区二区三区| 久久永久免费| 国产亚洲精品v| 久久精品国产在热久久| 午夜在线视频一区二区区别| 精品视频网站| 亚洲欧美日韩一区在线观看| 国产成人精品一区二区三区免费 | 国产精品v日韩精品v欧美精品网站| 在线视频观看日韩| 久久男人av资源站| 久久电影tv| 欧美福利专区| 国产精品对白| 日韩精品一二区| 久久av资源| 欧美精品一二|