天天看點

更适合kotlin的圖檔加載庫Coil

Android開發常見問題集合之一

在安卓開發項目裡面少不了會用到圖檔加載庫,目前使用比較廣泛有Glide、Picasso、Fresco等等,在當下kotlin語言普及之時,不知道有沒有人注意到這個開源庫:Coil

Coil的首字母由來:取Coroutine,Image和Loader得來Coil。是一個Android圖檔加載庫,通過Kotlin協程的方式加載圖檔。特點:
1.更快: Coil在性能上有很多優化包括記憶體緩存和磁盤緩存,把縮略圖存儲存在記憶體中,循環利用bitmap,自動暫停和取消圖檔網絡請求等。
2.更輕量級: Coil 隻有2000個方法(前提是你的APP裡面內建了OkHttp和Coroutines),Coil和Picasso的方法數差不多相比Glide和Fresco要輕量級很多。
3.更容易使用: Coil's API 充分利用了Kotlin語言的新特性簡化和減少了很多重複的代碼。
4.更流行: Coil首選Kotlin語言開發并且使用包含Coroutines, OkHttp, Okio和AndroidX Lifecycles在内的最流行的開源庫。

           

下載下傳/使用:

Coil允許使用mavenCentral()

implementation("io.coil-kt:coil:1.1.0")

使用示例:

可以使用ImageView的擴充函數load 加載一張圖檔:

// URL

imageView.load("https://www.example.com/image.jpg") 
           

// Resource

imageView.load(R.drawable.image) 
           

// File

imageView.load(File("/path/to/image.jpg")) 
           

// And more...

可以使用lambda文法輕松配置請求選項:

imageView.load("https://www.example.com/image.jpg") {
    crossfade(true)
    placeholder(R.drawable.image)
    transformations(CircleCropTransformation())
}
           

環境要求:AndroidX、Min SDK 14+、Java 8+

也可以檢視Coil文檔獲得更多資訊: full documentation here.

學習了!