android 如何使用线圈将图像文件加载到Jetpack合成图像

zkure5ic  于 2022-12-28  发布在  Android
关注(0)|答案(3)|浏览(140)

我想加载缓存中保存的图像到Image的Jetpack组成使用线圈。我搜索了堆栈溢出,但所有建议的方法都是加载网页网址。我知道它是可能的转换图像文件为位图,然后将其传递给线圈,但有任何内置的解决方案吗?

xdnvmnnf

xdnvmnnf1#

可以使用Coil将任何对象作为数据加载:

val cacheFile = File(context.cacheDir, "filename")
Image(
    rememberImagePainter(cacheFile),
    contentDescription = "...",
)
km0tfn4u

km0tfn4u2#

如果您有本地保存的图像路径,可以尝试以下方法,

val painter = rememberImagePainter(data = File(filePath))
Image(
    painter = painter,
    contentDescription = null)

并且为了从远程URL加载图像,

val painter = rememberImagePainter(data = imageUrl)
Image(
    painter = painter,
    contentDescription = null)
lf3rwulv

lf3rwulv3#

对于新版本的coil 2.2.2,rememberImagePainter没有给予我好的结果,所以我使用了这个-

AsyncImage(
    model = ImageRequest.Builder(LocalContext.current)
        .data(<file_path>)
        .build(),
    contentDescription = "icon",
    contentScale = ContentScale.Inside,
    modifier = Modifier.size(30.dp)
)

希望能帮到什么人

相关问题