kotlin 在Jetpack合成中将可绘制示例设置为图像

uurity8g  于 2023-02-16  发布在  Kotlin
关注(0)|答案(4)|浏览(126)

在Jetpack合成中,谁能告诉我有没有办法将可绘制对象分配给图像合成视图?
我把应用程序安装在Android设备上。我得到了一个类型为可绘制的图标,我想在图像中使用它

val icon: Drawable = packageInfor.applicationInfo.loadIcon(packageManager)

我发现有3个函数可以指定图像

  • 来自油漆工(IdRes)
  • 从图像位图
  • 来自图像矢量

从所有我不知道如何分配一个Drawable示例。

vjhs03f7

vjhs03f71#

毕竟,我找到了一个简单的解决方案与伴奏。感谢@罪人的制度给我的建议。
将此依赖项添加到应用gradle。

implementation "com.google.accompanist:accompanist-drawablepainter:<version>" //0.28.0

使用:

Image(
    painter = rememberDrawablePainter(drawable = drawable),
    contentDescription = "content description",
)

checkout :Drawable Painter¶

uttx8gqw

uttx8gqw2#

编辑:你一定要使用Wilson Tran答案中推荐的accompanist library,因为它提供了对几种可绘制对象的支持。

如果您不使用伴奏者资料库,您可以执行以下操作...

ContextCompat.getDrawable(LocalContext.current, R.mipmap.ic_launcher)?.let {
    Image(bitmap = it.toBitmap().asImageBitmap(), contentDescription = null)
}

如果需要,可以在toBitmap函数中设置可绘制的大小...

yks3o0rb

yks3o0rb3#

如果你使用的是Coil libraryrememberImagePainter将接受一个Any?作为它的data参数,这包括对Drawable示例的支持。我使用这个作为我的图像的一体化解决方案,而不是导入伴奏。

Image(
    painter = rememberImagePainter(data = myDrawableInstance)
)
ovfsdjhp

ovfsdjhp4#

你可以这样做

val backgroundImage = painterResource(R.drawable.your_image)

然后像这样传递给你的图像

Image(painter = backgroundImage, contentDescription = null)

那会有用的。

相关问题