HELLO WORLD--一起加油(🍺)!|

kingwzun

园龄:3年6个月粉丝:111关注:0

Android Compose 使用 照片选择器 Photo Picker

从 Android 13(Tiramisu, API 33)开始,官方提供了系统级图片选择器 Photo Picker。而且无需申请权限,只需几行代码即可轻松接入。效果如下图:

image

在不支持 Photo Picker 的低版本机型中,该库会自动调用 ACTION_OPEN_DOCUMENT 打开系统资源管理器进行选择,问题也不大。

官方介绍 and 教程:Photo picker

1. androidx.activity 1.6.0+

首先把 androidx.activity 升级到最新版本:

dependencies {
implementation 'androidx.activity:activity-compose:1.9.0'
}

如果因为各种原因,不能升级依赖版本,参考该文 浅尝 Android 13 Photo Picker 无惧权限烦恼

2. Compose 使用组件

@Composable
fun xxxCollectScreen(
xxxViewModel: xxxViewModel,
appNavController: NavController,
modifier: Modifier,
) {
//......
val pickMultipleMedia = rememberLauncherForActivityResult(
//设置一个值允许选择照片的,且最多选择5个照片的照片选择器
ActivityResultContracts.PickMultipleVisualMedia(5)) { uris ->
if (uris.isNotEmpty()) {
//逻辑代码,uris是用户选择的媒体文件的Uri( List<Uri> )
//按照实际场景再处理即可
}
}
//......
Row {
// begin Photo Picker region
TextButton(onClick = {
coroutineScope.launch {
//只选照片 ActivityResultContracts.PickVisualMedia.ImageOnly
pickMultipleMedia.launch(PickVisualMediaRequest(ActivityResultContracts.PickVisualMedia.ImageOnly))
}
}) {
Icon(
Icons.Filled.PhotoLibrary,
null
)
Spacer(Modifier.size(ButtonDefaults.IconSpacing))
Text("Add photo")
}
// end region
}
//......
}

3.各种 Photo Picker介绍

官方介绍 and 教程:Photo picker

本文作者:kingwzun

本文链接:https://www.cnblogs.com/kingwz/p/18325967

版权声明:本作品采用知识共享署名-非商业性使用-禁止演绎 2.5 中国大陆许可协议进行许可。

posted @   kingwzun  阅读(515)  评论(0编辑  收藏  举报
历史上的今天:
2022-07-26 树的DFS序
点击右上角即可分享
微信分享提示
评论
收藏
关注
推荐
深色
回顶
收起