如何使用Jetpack compose加载本地图片

问题描述 投票:0回答:1

我正在使用 android 的 photo-picker,然后将路径转储到数据库中。这一切都有效,但是当我尝试从 RoomDB 加载图像时,图像无法加载。

我尝试过使用

Image
AsyncImage
,但没有运气。我还将字符串转换为
.toUri()

val painter = rememberImagePainter(data = File("content://media/picker/0/com.android.providers.media.photopicker/media/1000000020"))
Image( painter = painter, contentDescription = null)


AsyncImage(model = "content://media/picker/0/com.android.providers.media.photopicker/media/1000000020",
 contentDescription = "Image from photo picker",
    contentScale = ContentScale.Crop,
    modifier = Modifier
            .size(100.dp, 100.dp)
)
android android-jetpack-compose android-jetpack
1个回答
0
投票

每次加载图像时,您必须确保您有读取图像的权限。在加载图像之前尝试此代码

val context = LocalContext.current
val uri = Uri.parse("content://media/picker/0/com.android.providers.media.photopicker/media/1000000020")
context.contentResolver.takePersistableUriPermission(uri, Intent.FLAG_GRANT_READ_URI_PERMISSION)
© www.soinside.com 2019 - 2024. All rights reserved.