详解Android官推Kotlin-First的图片加载库(1)

本文介绍了Coil-Kotlin作为Android官方推荐的图片加载库的使用方法,包括Resource和File的加载,以及如何通过lambda进行配置。重点讨论了ImageLoader的职责和配置,ImageRequest的创建,Disposable的管理和图片变换。Coil还提供了Interceptors、Mappers和Fetchers等功能,方便开发者进行拓展。文章最后提到了面试复习的重要性,分享了Android开发的相关学习资源。
摘要由CSDN通过智能技术生成

// Resource

imageView.load(R.drawable.image)

// File

imageView.load(File(“/path/to/image.jpg”))

同时我们也可以使用 lambda 语法轻松进行图片加载的配置:

imageView.load(“https://www.example.com/image.jpg”) {

crossfade(true)

placeholder(R.drawable.image)

transformations(CircleCropTransformation())

}

常用的 API

================================================================

ImageLoader

ImageLoader 是 Coil 中对于图片加载的大管家,负责处理缓存、数据获取、图像解码、请求管理、Bitmap 缓存池、内存管理等工作,一般建议只创建一个 ImageLoader 并在 App 中进行共享,这样性能是最优的。这是因为每个 ImageLoader 都有自己的内存缓存和 Bitmap 缓存池。

我们可以通过构造器来创建和配置 ImageLoader。

val imageLoader = ImageLoader.Builder(context)

.availableMemoryPercentage(0.25)

.crossfade(true)

.build()

同时由于 ImageLoader 是一个接口,也就意味着我们可以非常方便地进行测试,例如可以注入一个 fake 的 ImageLoader,从而每次都返回相同的 drawable。

val fakeImageLoader = object : ImageLoader {

private val drawable = ColorDrawable(Color.BLACK)

override fun enqueue(request: ImageRequest): Disposable {

request.target?.onStart(drawable)

request.target?.onSuccess(drawable)

return disposable

}

override suspend fun execute(request: ImageRequest): ImageResult {

  • 25
    点赞
  • 26
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值