我正在使用此答案中的以下代码将我的可组合函数绘制到画布上,该画布又将图像保存到工作正常的用户手机,直到我在可组合中使用rememberImagePainter
并且Image
在应用程序时不给我任何错误消息崩溃。
val bounds = capturingViewBounds ?: return@clickable
bitmap = Bitmap.createBitmap(
bounds.width.roundToInt(), bounds.height.roundToInt(),
Bitmap.Config.ARGB_8888
).applyCanvas {
translate(-bounds.left, -bounds.top)
view.draw(this)
}
我正在将 Web 上的 PNG 图像直接加载到这个基于 if 语句的可组合图像中。如果我在图像上使用我的文件夹中的普通可绘制对象,则没有问题,似乎只是当我从网络加载图像时它崩溃了
Image(
modifier = Modifier
.align(Alignment.CenterHorizontally)
.size(48.dp),
painter = if (player.playerImageUrl.isNotBlank()) {
rememberImagePainter(data = player.playerImageUrl)
} else {
painterResource(
id = setKitColour(kitColour)
)
},
contentDescription = null
)
private fun setKitColour(color: String): Int {
return when (color) {
"Red" -> R.drawable.ic_shirt_red
"Blue" -> R.drawable.ic_shirt_blue
"Green" -> R.drawable.ic_shirt_green
"Yellow" -> R.drawable.ic_shirt_yellow
"White" -> R.drawable.ic_shirt_white
else -> R.drawable.ic_shirt_black
}
}