遇到的問題
列表加載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)限和混淆配置
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
歡迎大家進(jìn)群探討Android相關(guān)技術(shù) 群號:548154942?
