Image加载网络图片

首先添加依赖:

    implementation("io.coil-kt:coil:1.4.0")implementation("io.coil-kt:coil-compose:1.4.0")

记得别忘记在manifest添加网络权限:

<uses-permission android:name="android.permission.INTERNET" />

简单使用:

        Image(modifier = Modifier.size(200.dp, 150.dp),painter = rememberImagePainter("https://img-blog.csdnimg.cn/20210823085620179.jpeg"),contentDescription = null)

效果如图:

1,placeholder:占位图

在图片还没有完全显示之前所展示的本地资源图片

        Image(modifier = Modifier.size(300.dp, 200.dp),painter = rememberImagePainter(data = "https://img-blog.csdnimg.cn/20210823085620179.jpeg",builder = {placeholder(R.drawable.head_icon)//占位图}),contentDescription = null)

效果如图:

2,Transitions:过渡效果

提供了两种过渡效果:

CrossfadeTransition 淡入淡出
Transition.NONE 在Target没有动画的情况下立即设置可绘制对象

        Image(modifier = Modifier.size(300.dp, 200.dp),painter = rememberImagePainter(data = "https://img-blog.csdnimg.cn/20210823085620179.jpeg",builder = {placeholder(R.drawable.head_icon)//占位图crossfade(true)//淡出效果}),contentDescription = null)

效果如图:

3,transformations:设置样式

CircleCropTransformation 圆形裁剪
RoundedCornersTransformation 圆角
GrayscaleTransformation 灰度 
BlurTransformation 高斯模糊

@Composable
fun imageTest() {Column(modifier = Modifier.fillMaxWidth().padding(10.dp).verticalScroll(state = rememberScrollState())) {Image(modifier = Modifier.size(120.dp, 120.dp),painter = rememberImagePainter(data = "https://img-blog.csdnimg.cn/20210823085620179.jpeg",builder = {placeholder(R.drawable.head_icon)//占位图crossfade(true)//淡出效果transformations(CircleCropTransformation())//圆形效果}),contentDescription = null)Spacer(modifier = Modifier.padding(2.dp))Image(modifier = Modifier.size(120.dp, 120.dp),painter = rememberImagePainter(data = "https://img-blog.csdnimg.cn/20210823085620179.jpeg",builder = {placeholder(R.drawable.head_icon)//占位图crossfade(true)//淡出效果transformations(RoundedCornersTransformation(0.8f))//圆角效果}),contentDescription = null)Spacer(modifier = Modifier.padding(2.dp))Image(modifier = Modifier.size(120.dp, 120.dp),painter = rememberImagePainter(data = "https://img-blog.csdnimg.cn/20210823085620179.jpeg",builder = {placeholder(R.drawable.head_icon)//占位图crossfade(true)//淡出效果transformations(GrayscaleTransformation())//灰度效果}),contentDescription = null,contentScale = ContentScale.Crop)Spacer(modifier = Modifier.padding(2.dp))Image(modifier = Modifier.size(120.dp, 120.dp),painter = rememberImagePainter(data = "https://img-blog.csdnimg.cn/20210823085620179.jpeg",builder = {placeholder(R.drawable.head_icon)//占位图crossfade(true)//淡出效果transformations(BlurTransformation(LocalContext.current, 0.1f, 2f))//高斯效果}),contentDescription = null,contentScale = ContentScale.Crop)}
}

效果如图:

Compose加载GIF图片

首先添加依赖:

implementation("io.coil-kt:coil-gif:1.4.0")

使用:

        Image(modifier = Modifier.size(300.dp),painter = rememberImagePainter(data = "https://img-blog.csdnimg.cn/e6bb95f89399404195212196fdaf3964.gif",builder = {decoder(GifDecoder())//添加GIF解码placeholder(R.drawable.head_icon)//占位图crossfade(true)//淡出效果}),contentDescription = null)

效果如图:

但是这里会出现一个问题:如果图片是jpg等格式的是没办法加载出来的,解决方案:

自己构建一个图片加载器赋值给imageLoader

        //自己构建图片加载器val imageLoaderM = ImageLoader.Builder(LocalContext.current).componentRegistry {add(GifDecoder())}.build()Image(modifier = Modifier.size(300.dp),painter = rememberImagePainter(data = "https://img-blog.csdnimg.cn/e6bb95f89399404195212196fdaf3964.gif",imageLoader = imageLoaderM,builder = {placeholder(R.drawable.head_icon)//占位图crossfade(true)//淡出效果}),contentDescription = null)Spacer(modifier = Modifier.padding(2.dp))Image(modifier = Modifier.size(300.dp),painter = rememberImagePainter(data = "https://img-blog.csdnimg.cn/20210823085620179.jpeg",imageLoader = imageLoaderM,builder = {placeholder(R.drawable.head_icon)//占位图crossfade(true)//淡出效果}),contentDescription = null)

效果如图:(可以加载出来)

Compose加载SVG图片

首先添加依赖

 implementation("io.coil-kt:coil-svg:1.4.0")

使用:

        //自己构建图片加载器val imageLoaderM = ImageLoader.Builder(LocalContext.current).componentRegistry {add(GifDecoder())//添加GIF图片解码add(SvgDecoder(LocalContext.current))//添加SVG图片解码}.build()Image(modifier = Modifier.size(300.dp),painter = rememberImagePainter(data = "https://coil-kt.github.io/coil/images/coil_logo_black.svg",imageLoader = imageLoaderM,builder = {placeholder(R.drawable.head_icon)//占位图crossfade(true)//淡出效果}),contentDescription = null)

效果如图:

Jetpack Compose——Image使用Coli加载网络图片(包含GIF、SVG)相关推荐

  1. Jetpack Compose Image加载网络图片

    在Jetpack Compose中加载网络图片,现在只能使用 Coil这个库!!! 且accompanist在几个月之前就弃用了Guild和 Coli库 弃用Guild和Coli!!! 1.引入Col ...

  2. iOS开发swift版异步加载网络图片(带缓存和缺省图片)

    iOS开发之swift版异步加载网络图片 与SDWebImage异步加载网络图片的功能相似,只是代码比较简单,功能没有SD的完善与强大,支持缺省添加图片,支持本地缓存. 异步加载图片的核心代码如下: ...

  3. 【转载】一行代码加载网络图片到ImageView——Android Picasso

    原文链接:一句代码加载网络图片到ImageView--Android Picasso  注意:此处使用下面代码需要先配置一下gradle,下载所需包. 具体操作如下图: compile 'com.sq ...

  4. ios开发多线程篇--异步加载网络图片GCD

    一.异步加载网络图片 1.ATS (1)简介 从iOS9.0开始,如果按照以前的方式写代码,在访问网络的时候 ,会报以下警告信息: App Transport Security has blocked ...

  5. 【Flutter】Image 组件 ( 加载网络图片 | 加载静态图片 | 加载本地图片 | path_provider 插件 )

    文章目录 一.加载网络图片 二.加载静态图片 三.加载本地图片 四.完整代码示例 五.相关资源 一.加载网络图片 参考 [Flutter]Image 组件 ( Image 组件简介 | Image 构 ...

  6. Android Volley完全解析2:使用Volley加载网络图片

    原文链接:http://blog.csdn.net/guolin_blog/article/details/17482165,CSDN 郭霖 在上一篇文章中,我们了解了Volley到底是什么,以及它的 ...

  7. android listview动态加载网络图片不显示,Android Listview异步动态加载网络图片

    Android Listview异步动态加载网络图片 详见: http://blog.sina.com.cn/s/blog_62186b460100zsvb.html 标签: Android SDK ...

  8. Universal-Image-Loader,android-Volley,Picasso、Fresco和Glide开源组件加载网络图片的优缺点比较...

    在android中的加载网络图片是一件十分令人头疼的事情,在网上有着许多关于加载网络图片的开源库,可以让我们十分方便的加载网络图片.在这里我主要介绍一下我自己在使用Volley, Picasso, U ...

  9. android imageview 设置网络图片,ImageView加载网络图片

    android网络加载图片框架Android-Universal-Image-Loader功能非常强大,其开源地址https://github.com/nostra13/Android-Univers ...

最新文章

  1. android组件浮动在activity上_Jetpack Hilt 依赖注入框架上手指南
  2. 用1天快速上手org-mode(windows系统)
  3. 全文搜索引擎选 ElasticSearch 还是 Solr
  4. tensorBoard 初级实现
  5. asp.net网站安全常见问题与防范
  6. 利用license机制来保护Java软件产品的安全
  7. 漫谈单点登录(SSO)(淘宝天猫)(转载)
  8. MapReduce简介和过程浅析
  9. validate验证
  10. 闭包 进阶 javascript
  11. [css]通过transform缩放邮件客户端h5页面
  12. Bootstrap 按钮的使用
  13. 青春校园小说:天使会爱上恶魔【完】『看了绝对上瘾』(欢迎转载)
  14. 动画过渡transition
  15. 给定一个仅包含大小写字母和空格 ‘ ‘ 的字符串 s,
  16. InstallShield Slient Uninstall
  17. python图例重复显示_python matplotlib图例重复
  18. 从来也科技首次入选Gartner RPA魔力象限报告,看国产RPA未来发展
  19. linux文件扫描并打印,Linux办公一条龙—Linux中扫描、打印的实现
  20. 终于下定决心经营自己的 GitHub 账号

热门文章

  1. 华为荣耀7i手动更改DNS,提高网页加载速度
  2. commandArgument用于绑定一个传递的参数
  3. 中科大实验室linux,中国科学技术大学信息网络实验室
  4. C语言:对从键盘输入的整数进行求和(scanf( )的高级用法)
  5. RocketMq的刷盘方式
  6. 艾诺威Aerohive AP120,TTL简单设置和Image(固件)损坏修复等
  7. c++资料匠心精作C++从0到1入门编程(三)- c++核心(基于STL的泛式编程)
  8. 听说这份试卷只有程序员能打满分...
  9. excel打开大文件很卡
  10. spring事务传播之NESTED