首页 > 解决方案 > Jetpack Compose 如何创建具有特定大小和配置的 ImageBitmap?

问题描述

ImageBitmap 加载和图像

ImageBitmap.imageResource(
        LocalContext.current.resources,
        R.drawable.landscape1
    )

还有一个函数可以用一些参数调用

ImageBitmap(
        width = 300,
        height = 300,
        config = ImageBitmapConfig.Argb8888,
        hasAlpha = true,
        colorSpace = ColorSpaces.Srgb
    )

它返回并没有像素数据的空位图,是否可以创建具有某些特定配置的 imageBitMap?

ImageBitmap 有类似的东西吗?

val option = BitmapFactory.Options()
option.inPreferredConfig = Bitmap.Config.ARGB_8888
val bitmap: Bitmap = BitmapFactory.decodeResource(
    LocalContext.current.resources,
    R.drawable.landscape1,
    option
)

标签: androidandroid-jetpack-compose

解决方案


您可以转换BitmapImageBitmap

val option = BitmapFactory.Options()
option.inPreferredConfig = Bitmap.Config.ARGB_8888
val bitmap = BitmapFactory.decodeResource(
    LocalContext.current.resources,
    R.drawable.test,
    option
).asImageBitmap()

请注意,每次重组都会花费大量时间,因此您可能希望将其包装起来remember


推荐阅读