在基于XML的图像中,我们可以按照https://medium.com/mobile-app-development-publication/android-matrix-scaletype-explained-4501f0796be8设置矩阵缩放类型,这是一个非常强大的自定义缩放类型,可以在图像上执行。
然而,在JetpackCompose图像中,我们不再有矩阵缩放。而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中实现矩阵缩放?
您正在寻找的行为,可以通过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
})