如何从Jetpack Compose中的资产加载图像



我在资产文件夹中有数百个png文件,我想将它们加载到Imagecomposable中。但我只能在可绘制文件夹中使用图像。如何从资产中加载图像到Image?

示例:

var bitmapState by remember{ mutableStateOf<Bitmap?>(null) }
val context = LocalContext.current
LaunchedEffect(Unit) {
bitmapState = BitmapFactory.decodeStream(context.assets.open("assetsImage.png"))
}

if (null != bitmapState) {
val bitmap = bitmapState!!.asImageBitmap()
Image(
bitmap = bitmap,
"assetsImage",
modifier = Modifier.fillMaxSize(),
colorFilter = null
)
}

@Halifax解决方案工作,但我有一些性能问题。通过使用Coil,它更光滑和干净。

在构建。Gradle (:app):

implementation("io.coil-kt:coil-compose:2.2.2")

然后:

AsyncImage(
model = "file:///android_asset/images_folder/image.png",
contentDescription = "",
)

最新更新