Android SketchImageView 加載Gif圖片,解決界面不流暢卡頓問題

遇到的問題

列表加載gif圖片,用Fresco,Glide,android-gif-drawable等都能實(shí)現(xiàn)簡單的單個(gè)Gif圖片的加載,如果在列表上加載圖片,不做內(nèi)存優(yōu)化處理,那么OOM就會黏著你,對于項(xiàng)目比較緊急,時(shí)間有限的童鞋來說,優(yōu)化無疑是雪上加霜,SO,那么給大家推薦一個(gè)簡單加載Gif圖片的控件,超級好用!



簡介

Sketch 是 Android 上一個(gè)強(qiáng)大且全面的圖片加載器,支持 GIF,手勢縮放以及分塊顯示超大圖片。Sketch is a powerful and comprehensive image loader on Android, with support for GIF, gesture zooming, block display super large image

Sketch 是 Android 上一款強(qiáng)大且全面的圖片加載器,除了圖片加載的必備功能外,還支持 GIF,手勢縮放、分塊顯示超大圖片、自動糾正圖片方向、顯示視頻縮略圖等功能


特性

支持的特性

多種 URI 支持. 支持?http://、https://、asset://、content://、file:///sdcard/sample.jpg、?/sdcard/sample.jpg、drawable://、data:image/、data:img/、android.resource://、apk.icon://、app.icon://?等 URI,通過?UriModel?還可以擴(kuò)展支持的 URI

支持 gif 圖片. 集成了?android-gif-drawable?1.2.10 可以方便的顯示 gif 圖片

支持手勢縮放. 支持手勢縮放功能,在?PhotoView?的基礎(chǔ)上進(jìn)行了優(yōu)化,增加了滾動條,定位等功能

支持分塊顯示超大圖. 支持分塊顯示超大圖功能,從此再大的圖片也不怕了

支持三級緩存. 通過 LruMemoryCache、LruDiskCache 復(fù)用圖片,加快顯示時(shí)間;通過 LruBitmapPool 復(fù)用 Bitmap,減少因 GC 而造成的卡頓

支持糾正圖片方向. 可糾正方向不正的圖片,并且分塊顯示超大圖功能也支持,僅限 JPEG 格式的圖片

支持顯示 APK 或 APP 圖標(biāo). 支持顯示本地 APK 文件的圖標(biāo)或根據(jù)包名和版本號顯示已安裝APP的圖標(biāo)

支持 Base64 圖片. 支持解析 Base64 格式的圖片

支持各種列表. 在各種列表(ListView、RecyclerView)中循環(huán)使用不錯位,并且不占用 setTag() 方法

自動防止加載過大 Bitmap?可通過 maxSize 來控制加載到內(nèi)存的圖片的尺寸,默認(rèn)為 ImageView的 layout_width 和 layout_height 或屏幕的寬高

獨(dú)家 TransitionDrawable 支持. 獨(dú)家支持任意尺寸的兩張圖片使用 TransitionDrawable 過渡顯示,保證不變形

只加載或只下載. 除了 display() 方法可以顯示圖片之外,你還可以通過 load() 方法只加載圖片到內(nèi)存中或通過 download() 方法只下載圖片到本地

移動數(shù)據(jù)下暫停下載. 內(nèi)置了移動數(shù)據(jù)下暫停下載圖片的功能,你只需開啟即可

自動選擇合適的 Bitmap.Config. 根據(jù)圖片的 MimeType 自動選擇合適的 Bitmap.Config,減少內(nèi)存浪費(fèi),例如對于 JPEG 格式的圖片就會使用 Bitmap.Config.RGB_565 解碼

強(qiáng)大且靈活的自定義. 可自定義 URI 支持、HTTP、下載、緩存、解碼、處理、顯示、占位圖等各個(gè)環(huán)節(jié)


支持的URI


支持的圖片類型

jpeg

png

gif

bmp

webp

示例APP


掃描二維碼下載



現(xiàn)在進(jìn)入主題,開始使用

導(dǎo)入 Sketch

在 app 的 build.gradle 文件的 dependencies 節(jié)點(diǎn)中加入依賴

implementation'me.panpf:sketch-gif:2.6.1'

Android Studio 會自動合并 AAR 中所包含的權(quán)限和混淆配置

使用 SketchImageView 顯示圖片

SketchImageViewsketchImageView=(SketchImageView) findViewById(R.id.image_main);

//默認(rèn)播放gif圖片

sketchImageView.getOptions().setDecodeGifImage(true);

//設(shè)置gif資源圖片

sketchImageView.displayImage("http://t.cn/RShdS1f");



使用方法就是這么簡單,詳細(xì)API大家可以去查看SketchImageView

SketchImageView

歡迎大家進(jìn)群探討Android相關(guān)技術(shù) 群號:548154942?


如果對你有用,請點(diǎn)擊下面按鈕,支持一下小程序員吧
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容