1. 程式人生 > >Android SketchImageView 載入Gif圖片,解決介面不流暢卡頓問題

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

遇到的問題

列表載入gif圖片,用Fresco,Glide,android-gif-drawable等都能實現簡單的單個Gif圖片的載入,如果在列表上載入圖片,不做記憶體優化處理,那麼OOM就會黏著你,對於專案比較緊急,時間有限的童鞋來說,優化無疑是雪上加霜,SO,那麼給大家推薦一個簡單載入Gif圖片的控制元件,超級好用!

簡介

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

Sketch 是 Android 上一款強大且全面的圖片載入器,除了圖片載入的必備功能外,還支援 GIF,手勢縮放、分塊顯示超大圖片、自動糾正圖片方向、顯示視訊縮圖等功能

特效

支援的特性

 

 

  • 多種 URI 支援. 支援 http://https://asset://content://file:///sdcard/sample.jpg、 /sdcard/sample.jpgdrawable://data:image/data:img/android.resource://apk.icon://app.icon:// 等 URI,通過 
    UriModel
     還可以擴充套件支援的 URI
  • 支援 gif 圖片. 集成了 android-gif-drawable 1.2.10 可以方便的顯示 gif 圖片
  • 支援手勢縮放. 支援手勢縮放功能,在 PhotoView 的基礎上進行了優化,增加了滾動條,定位等功能
  • 支援分塊顯示超大圖. 支援分塊顯示超大圖功能,從此再大的圖片也不怕了
  • 支援三級快取. 通過 LruMemoryCache、LruDiskCache 複用圖片,加快顯示時間;通過 LruBitmapPool 複用 Bitmap,減少因 GC 而造成的卡頓
  • 支援糾正圖片方向
    . 可糾正方向不正的圖片,並且分塊顯示超大圖功能也支援,僅限 JPEG 格式的圖片
  • 支援顯示 APK 或 APP 圖示. 支援顯示本地 APK 檔案的圖示或根據包名和版本號顯示已安裝APP的圖示
  • 支援 Base64 圖片. 支援解析 Base64 格式的圖片
  • 支援各種列表. 在各種列表(ListView、RecyclerView)中迴圈使用不錯位,並且不佔用 setTag() 方法
  • 自動防止載入過大 Bitmap 可通過 maxSize 來控制載入到記憶體的圖片的尺寸,預設為 ImageView的 layout_width 和 layout_height 或螢幕的寬高
  • 獨家 TransitionDrawable 支援. 獨家支援任意尺寸的兩張圖片使用 TransitionDrawable 過渡顯示,保證不變形
  • 只加載或只下載. 除了 display() 方法可以顯示圖片之外,你還可以通過 load() 方法只加載圖片到記憶體中或通過 download() 方法只下載圖片到本地
  • 移動資料下暫停下載. 內建了移動資料下暫停下載圖片的功能,你只需開啟即可
  • 自動選擇合適的 Bitmap.Config. 根據圖片的 MimeType 自動選擇合適的 Bitmap.Config,減少記憶體浪費,例如對於 JPEG 格式的圖片就會使用 Bitmap.Config.RGB_565 解碼
  • 強大且靈活的自定義. 可自定義 URI 支援、HTTP、下載、快取、解碼、處理、顯示、佔位圖等各個環節  

支援的URI

Type Scheme
File in network http://, https://
File in SDCard /, file://
Content Resolver content://
Asset Resource asset://
Drawable Resource drawable://
Base64 data:image/, data:/img/
APK Icon apk.icon://
APP Icon app.icon://
Android Resource android.resource://

 

開始使用

匯入 Sketch

在 app 的 build.gradle 檔案的 dependencies 節點中加入依賴

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

Android Studio 會自動合併 AAR 中所包含的許可權和混淆配置

使用 SketchImageView 顯示圖片

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

//預設播放gif圖片

sketchImageView.getOptions().setDecodeGifImage(true);

//設定gif資源圖片

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

 

使用方法就是這麼簡單,詳細API大家可以去檢視SketchImageView

SketchImageView

歡迎大家進群探討Android相關技術 群號:548154942