新的图片加载库——Coil
Coil 是 Instacart 团队研发的新的的图片加载库,它使用了很多高级功能,例如协程,Okhttp,androidx.lifecycle。Coil 还包括一些高级功能,例如图像采样,有效的内存使用以及请求的自动取消/暂停
默认情况下 Coil 与 R8 完全兼容,开箱即用,不需要添加额外的规则。如果使用 Proguard ,您可能需要为 Coroutines, OkHttp 和 Okio 添加规则
Coil 的优势
- 快速:
Coil进行了很多优化,包括内存和磁盘缓存,对内存中的图像进行采样,重新使用位图,自动暂停/取消请求等等 - 轻量:
Coil在您的APK中添加了约 2000 种方法(对于已经使用OkHttp和Coroutines的应用程序),与Picasso相当,远少于Glide和Fresco - 易用:
Coil的 API 利用 Kotlin 的特性简化了样板代码 - 现代:
Coil是Kotlin-first,使用现代化的库,例如Coroutines,OkHttp,Okio, 以及AndroidX Lifecycles
Coil 是以下名称的缩写:Coroutine Image Loader
Artifacts
Coil 拥有 5 个 artifact 并发布在 mavenCentral()
io.coil-kt:coil:依赖于io.coil-kt:coil-base并且包含了Coil的单例和ImageView.load的扩展函数io.coil-kt:coil-base:base 库,不包含Coil的单例和ImageView.load的扩展函数,如果使用依赖注入,则可以使用该库io.coil-kt:coil-gif:引入一系列解码器以支持解码 gifio.coil-kt:coil-svg:引入一系列解码器以支持 svgio.coil-kt:coil-video:包括两个 fetchers ,以支持从 Android 支持的任何视频格式中提取和解码帧
// 普通使用引用
implementation "io.coil-kt:coil:0.11.0"
// 使用依赖注入时或者制作基于 coil 的库引用
implementation "io.coil-kt:coil-base:0.11.0"
Java 8
Coil 要求 Java 8,要通过 D8 启用 Java 8 调试,请将以下内容添加到 Gradle 脚本
Gradle (.gradle)
android {
compileOptions {
sourceCompatibility JavaVersion.VERSION_1_8
targetCompatibility JavaVersion.VERSION_1_8
}
}
tasks.withType(org.jetbrains.kotlin.gradle.tasks.KotlinCompile).all {
kotlinOptions {
jvmTarget =

Coil是一款由Instacart开发的轻量级图片加载库,利用Kotlin协程提高性能。它支持内存和磁盘缓存、自动暂停/取消请求、图像采样等功能。Coil具有简洁的API,与Android兼容性良好,并提供多种扩展功能,如GIF和SVG解码。使用ImageView扩展函数简化加载操作,ImageLoader负责请求管理。预加载、取消请求和单例模式进一步提高了库的灵活性和效率。
最低0.47元/天 解锁文章
3325

被折叠的 条评论
为什么被折叠?



