图片位置
图片存放位置(drawable 还是 mipmap)的选择主要取决于图片的用途:
drawable 文件夹:
- 用于存放应用中大多数图片资源,如按钮图标、背景图、插图等。
- 支持多种密度限定符(如 drawable-hdpi、drawable-xhdpi 等)。
- 在 Compose 中通过
painterResource(id = R.drawable.image_name)
访问。
mipmap 文件夹:
- 专门用于存放应用图标(launcher icon)
- 系统会对 mipmap 中的图标进行特殊处理,确保在不同场景下(如 launcher、快捷方式等)显示质量。
- 在 Compose 中通过
painterResource(id = R.mipmap.ic_launcher)
访问。
最佳实践:
- 将应用图标放在 mipmap 文件夹
- 其他所有图片资源放在 drawable 文件夹
在 Compose 中加载方式相同,都是使用 painterResource()
,区别仅在于资源 ID 来自 R.drawable
还是 R.mipmap
。
引用
1 | import androidx.compose.foundation.Image |
属性
适配模式
1 | Image( |
contentScale:
ContentScale.Fit
等比缩放 保证图片完全显示 默认的方式ContentScale.Crop
等比缩放后居中剪裁ContentScale.Inside
等比缩放保证图片完全显示ContentScale.FillBounds
拉伸填充ContentScale.FillHeight
等比缩放 填充高度ContentScale.FillWidth
等比缩放 填充宽度ContentScale.None
不缩放后居中剪裁
着色
非透明的PNG图片的区域添加着色。
1 | Image( |
圆角
圆形
1 | Image( |
圆角
1 | Image( |
背景剪裁
图片的背景是不会被剪裁的,我们可以在外面套一个Box做剪裁。
1 | Box( |
加载本地图片
1 | Image( |
图片角标
1 | Image( |
加载网络图片
Github地址:https://github.com/coil-kt/coil
Coil官方文档:https://coil-kt.github.io/coil
添加依赖
1 | implementation("io.coil-kt:coil-compose:2.6.0") |
添加网络权限
1 | <uses-permission android:name="android.permission.INTERNET" /> |
使用
1 |
|
调用
1 | LoadWebImage(url = "https://www.psvmc.cn/head.jpg") |
设置占位图
1 |
|
加载GIF
添加引用
1 | implementation("io.coil-kt:coil-compose:2.6.0") |
加载GIF
1 | //自己构建图片加载器 |
本地GIF
1 | Image( |
网络GIF
1 | Image( |
自带的加载中
1 | CircularProgressIndicator( |
加载Bitmap
1 |
|