看看线圈。 Android上Kotlin的图片加载库。

本文介绍了Coil,一个基于Kotlin协程的轻量级图像加载库,强调其小巧的体积和易用性。Coil与Glide和Picasso等现有库相比,提供更简单的集成和扩展功能,如自定义目标和转换。通过添加依赖项,开发者可以轻松地在项目中使用Coil加载图片。
摘要由CSDN通过智能技术生成

祝大家新年快乐! 如果您正在阅读本文,则可能意味着该回到了代码编辑器了。 最近,我发现了图像加载库Coil,我想我应该对其进行一些探索并分享我发现的内容。 hem

线圈:是什么?

那么,根据他们的文档线圈表示Co例行的法师大号 oader,这是一个图像加载库由Kotlin协同程序的支持。 如果您不熟悉Kotlin Coroutines,请不要担心,这些只是轻量级线程。 另外,不需要使用Coroutines就能使用此库,因此我不会深入研究Kotlin Coroutines的复杂细节。

但是我们真的需要另一个图像加载库吗?

您可能想知道我们是否真的需要一个充满Glide和Picasso或Universal Image Loader的世界中的另一个图像加载库- 对于那些已经在Android平台上开发了一段时间的人 😉。 然而,关于线圈,有两件事引起了我的注意:

  1. 与我选择的图像加载库Glide相比,它的尺寸更小。 和,
  2. 令人惊讶的是,它非常易于使用。 您将在本文的下半部分看到,该库是非常惯用的,这就是Kotlin的全部用途,而且非常棒。

好吧,我被卖了,下一步呢?

为了在您的项目中使用Coil,您需要使您的项目已经在使用AndroidX。 它还必须使用SDK级别29进行编译以及使用Java 8。

如果满足上述每个条件,则需要在build.gradle文件中的应用程序级别依赖项中添加以下行,然后才能使用该库:

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

这将包括Coil单例的默认工件。 这样,您就可以在Android应用程序中开始更轻松,更快速的图像加载了。

加载图像

要将图像加载到ImageView ,Coil提供了一个漂亮的扩展函数,称为load()

下面是正在使用的库的代码片段:

//Loading from a URL
imageView . load ( "https://via.placeholder.com/600/92c952" )

//Loading from an image drawable
imageView . load ( R . drawable . some_image_placeholder )

// Loading from a file
imageView . load ( File ( "/path/to/some_image_placeholder.png" ))

瓦拉! 真的就是这么简单。 你不能把这个东西编起来!

在后台, load()函数可以做很多事情。 以从URL加载为例:

  • Coil创建一个RequestDisposable对象,该对象基本上是负责连接到网络的对象。
  • 通过网络请求URL中指定的图像,并将结果加载到target
  • 在这种情况下, ImageView实例是预期的target因此具有扩展功能的美 )。

让我们探索更多...

在这一点上,您可能想知道如何使该库执行某些操作,例如配置占位符,或者可能应用转换以圆形裁剪图像。

好吧,这真的很容易。 您只需在load()扩展函数之后将配置添加到尾随lambda中即可。

观察:

//Applying image loading with configurations
imageView . load ( "https://via.placeholder.com/600/92c952" ) {
    crossfade ( true )
    placeholder ( R . drawable . placeholder_image )
    transformations ( CircleCropTransformation ())
}

很简单!。

似乎还不够,Coil支持加载到自定义目标。

使用Coil单例中的load()扩展函数,您将得到以下内容:

//Custom targets
Coil . load ( "https://via.placeholder.com/600/92c952" ){
    target { drawable ->
        //Do something with result e.g apply a filter to greyscale image.
    }
}

您甚至可以侦听诸如onSuccessonStartonErroronCancel类的特定事件,但是在本文中我不会涉及这些事件。 如果您想让我进一步深入,可以告诉我。 我将创建一个Coil party技巧 2部分,涉及我可以找到的库的各个方面。

有关转换的更多信息

Coil库提供了4种开箱即用的转换,即

  • BlurTransformation应用高斯模糊。
  • CircleCropTransformation并将图像居中成一个圆圈。
  • GrayscaleTransformation将图像着色为灰度。
  • RoundedCornersTransformation图像以适合目标尺寸并RoundedCornersTransformation入图像的角。

其他要注意的酷事😎

关于Coil库,还有一些很酷的注意事项。

  1. 它对扩展的支持非常广泛,这使开发人员可以在项目中支持更多文件类型,以满足他们的需求。
  2. 它具有使测试更加容易的功能。 基本上,您可以模拟ImageLoader对象的实例,因为它是一个接口。
  3. 没有注释处理! 这是一个很大的。 这意味着在您使用Glide的情况下,您可以更快地构建项目,您知道这很重要。 他们使用Kotlin的扩展功能功能。

结论

Coil是一个非常漂亮的Android图像加载库。 我与Instacart毫无关系,但是我倡导更简洁的代码,而且我一直都很懒惰。 我会做任何让我的生活更轻松的事情,而Coil就是这样,至少要加载图像!

请继续尝试一下, 甚至可以从当前的图像加载库中迁移。

如果您想了解更多信息,我在下面提供了一些可能对您有用的链接:

那是所有人

请随时在Twitter上关注我。 我一直在讨论。

From: https://dev.to/kudziechase/taking-a-look-at-coil-an-image-loading-library-for-kotlin-on-android-1ndp

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值