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

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

Coil: What is it?

Well, according to their documentation Coil stands for Coroutine Image Loader and it is an image loading library backed by Kotlin Coroutines. If you aren't familiar with Kotlin Coroutines, then fear not, these are just lightweight threads. Also knowledge of Coroutines isn't required to use this library so I will not be diving into the intricate details of Kotlin Coroutines.

But do we really need another image loading library?

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

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

Okay I'm sold, what next?

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

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

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

这将包括默认工件和卷材单身人士。 这样,您就可以开始在Android应用程序中更轻松,更快速地开始图像加载了。

Loading an Image

要将图像加载到影像检视,线圈提供了一个漂亮的扩展功能,称为加载()。

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

//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"))

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

在引擎盖下加载()函数可以做很多事情。 以从URL加载为例:

  • 线圈创建一个RequestDisposable对象,基本上是负责连接到网络的对象。通过网络请求在URL中指定的图像,并将结果加载到目标。在这种情况下,影像检视是预期的目标(因此扩展功能之美)。

Let's explore a little more...

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

好吧,这真的很容易。 您只需将配置添加到尾随的lambda加载()扩展功能。

观察:

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

很简单的!。

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

使用加载()扩展功能卷材单身人士,您只有以下内容:

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

您甚至可以收听特定事件,例如成功,onStart,onError和onCancel,however I will not be getting into these in this article. You can let me know if you want me to dive deeper. And I will create a 线圈派对技巧2部分的文章涉及我可以找到的库的各个方面。

A little bit of more information on Transformations

Coil库提供了4种现成的转换,即

  • 模糊变换-应用高斯模糊。CircleCropTransformation-裁剪图像并将其居中成一个圆圈。灰度转换-将图像着色为灰度。圆角变换-裁切图像以适合目标尺寸并修圆图像的角。

Other cool things to note 😎

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

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

In Conclusion

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

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

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

That's all folks

Feel free to follow me on Twitter. I'm always up for a discussion.

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、付费专栏及课程。

余额充值