【奇技淫巧】新的图片加载库?基于Kotlin协程的图片加载库——Coil

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

新的图片加载库——Coil

CoilInstacart 团队研发的新的的图片加载库,它使用了很多高级功能,例如协程,Okhttpandroidx.lifecycleCoil 还包括一些高级功能,例如图像采样,有效的内存使用以及请求的自动取消/暂停

默认情况下 Coil 与 R8 完全兼容,开箱即用,不需要添加额外的规则。如果使用 Proguard ,您可能需要为 Coroutines, OkHttpOkio 添加规则

Coil 的优势

  • 快速:Coil 进行了很多优化,包括内存和磁盘缓存,对内存中的图像进行采样,重新使用位图,自动暂停/取消请求等等
  • 轻量:Coil 在您的APK中添加了约 2000 种方法(对于已经使用 OkHttpCoroutines 的应用程序),与 Picasso 相当,远少于 GlideFresco
  • 易用:Coil 的 API 利用 Kotlin 的特性简化了样板代码
  • 现代:CoilKotlin-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:引入一系列解码器以支持解码 gif
  • io.coil-kt:coil-svg:引入一系列解码器以支持 svg
  • io.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 =
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值