有没有办法为 Jetpack Compose Image 执行矩阵缩放?

时间:2021-02-06 08:06:14

标签: android android-jetpack-compose

在基于 XML 的图像中,我们可以根据 https://medium.com/mobile-app-development-publication/android-matrix-scaletype-explained-4501f0796be8 拥有矩阵比例类型,这是一种非常强大的自定义比例类型,可以在图像上执行。

然而,在 JetpackCompose 镜像中,我们不再有 Matix Scale。相反,contentScale

        Image(imagePicture,
            contentDescription = null,
            modifier = Modifier.fillMaxSize(),
            alignment = alignment.alignment,
            contentScale = scale.scaleType // the scale here
        )

仅包含此处列出的 https://developer.android.com/reference/kotlin/androidx/compose/ui/layout/ContentScale,即裁剪、适合、填充宽度、填充高度、填充边界、适合、内部和无。

如何在 JetpackCompose 中实现矩阵缩放?

1 个答案:

答案 0 :(得分:0)

您正在寻找的行为可以通过 graphicsLayer 实现:

val imageBitmap = imageResource(id = R.drawable.cover)
Image(imageBitmap, contentDescription = "Test", modifier = Modifier
    .graphicsLayer {
        translationX = 0.4f
        translationY = 0.4f
        rotationY = 53f
        rotationX = 44f
        rotationZ = 23f
        scaleX = 0.4f
        scaleY = 0.5f
    })