本文转载自微信公众号「Android开发编程」,作者Android开发编程。转载本文请联系Android开发编程公众号。
Coil是Android上的一个全新的图片加载框架,它的全名叫做coroutine image loader,即协程图片加载库;
与传统的图片加载库Glide,Picasso或Fresco等相比。该具有轻量(只有大约1500个方法)、快、易于使用、更现代的API等优势;
它支持GIF和SVG,并且可以执行四个默认转换:模糊,圆形裁剪,灰度和圆角。并且是全用Kotlin编写,如果你是纯Kotlin项目的话,那么这个库应该是你的首选;
Coil 是一个 Android 图片加载库,通过 Kotlin 协程的方式加载图片。特点如下:
①Coil 可以在 mavenCentral() 下载
- implementation("io.coil-kt:coil:1.2.1")
②可以使用 ImageView 的扩展函数 load 加载一张图片:
- // URL
- imageView.load("https://www.example.com/image.jpg")
- // 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())
- }
error
- imageView.load(url) {
- error(R.drawable.error)
- }
placeholder预置展位图
- imageView.load(url) {
- placeholder(R.drawable.placeholder)
- crossfade(3000)
- }
crossfade的动画时间
- imageView.load(url) {
- crossfade(3000)
- }
③transformations
Coil默认提供了四种变换:模糊变换(BlurTransformation)、圆形变换(CircleCropTransformation)、灰度变换(GrayscaleTransformation)和圆角变换(RoundedCornersTransformation)
基础用法:
- imageView.load(IMAGE_URL){
- transformations(GrayscaleTransformation())
- }
直接加入变换就可以, 同时可支持多种变换:
- imageView.load(IMAGE_URL) {
- transformations(GrayscaleTransformation(),
- RoundedCornersTransformation(topLeft = 2f, topRight =
- 2f,bottomLeft = 40f, bottomRight = 40f))
- }
④Gif加载
Coil基础包中是不支持Gif加载的,需要添加extend包:
- implementation("io.coil-kt:coil-gif:0.9.5")
此时需要更改一下代码的方式,在imageLoader中注册Gif组件:
- val gifImageLoader = ImageLoader(this) {
- componentRegistry {
- if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.P) {
- add(ImageDecoderDecoder())
- } else {
- add(GifDecoder())
- }
- }
- }
使用本组件之后,ImageView可直接使用:
- id_image_gif.load(GIF_IMAGE_URL, gifImageLoader)
⑤SVG加载
Coil也可以进行SVG加载的,同gif一样,也是需要添加extend包的:
- implementation("io.coil-kt:coil-svg:0.9.5")
代码如下:
- val svgImageLoader = ImageLoader(this){
- componentRegistry {
- add(SvgDecoder(this@MainActivity))
- }
- }
- id_image_svg.load(R.drawable.ic_directions_bus_black_24dp, svgImageLoader)
Coil可以配合Kotlin协程实现图片加载:
分享题目:Android进阶之Coil-为kotlin而生的图片库详解
分享地址:http://www.mswzjz.cn/qtweb/news28/411278.html
攀枝花网站建设、攀枝花网站运维推广公司-贝锐智能,是专注品牌与效果的网络营销公司;服务项目有等
声明:本网站发布的内容(图片、视频和文字)以用户投稿、用户转载内容为主,如果涉及侵权请尽快告知,我们将会在第一时间删除。文章观点不代表本网站立场,如需处理请联系客服。电话:028-86922220;邮箱:631063699@qq.com。内容未经允许不得转载,或转载时需注明来源: 贝锐智能