You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Jetpack Compose Photo Picker中筛选仅选择PNG图片?

在Jetpack Compose中使用Photo Picker筛选仅PNG图片

要将Photo Picker的选择范围限制为仅PNG图片,你需要指定自定义媒体类型,而非使用默认的ImageOnly(它会包含所有图片格式)。具体实现如下:

修改核心代码

将按钮点击事件中启动Photo Picker的逻辑,替换为指定image/png MIME类型的请求:

val multiplePhotoPickerLauncher = rememberLauncherForActivityResult(
    contract = ActivityResultContracts.PickMultipleVisualMedia(),
    onResult = { uris -> 
        // 处理选中的PNG图片URI
    })

Button(
    modifier = Modifier
        .fillMaxWidth()
        .bounceClick(),
    colors = ButtonDefaults.buttonColors(
        containerColor = White, 
        disabledContainerColor = White80,
        disabledContentColor = White
    ),
    onClick = {
        // 定义仅允许PNG的媒体类型
        val pngOnlyMediaType = ActivityResultContracts.PickVisualMedia.ImageAnd("image/png")
        // 启动筛选后的Photo Picker
        multiplePhotoPickerLauncher.launch(PickVisualMediaRequest(pngOnlyMediaType))
    }
) {
    Text(
        color = Black80,
        text = "${attachments.size} / 10"
    )
}

关键说明

  • ActivityResultContracts.PickVisualMedia.ImageAnd("image/png"):该方法会创建一个仅匹配PNG格式的媒体类型筛选器,系统Photo Picker将只展示符合此MIME类型的文件。
  • 若需支持多种特定格式(如同时兼容PNG和WebP),可传入多个MIME类型,示例:ImageAnd("image/png", "image/webp")。

内容的提问来源于stack exchange,提问作者Kalpesh Doru

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.07 13:32:41