如何在 Canvas jetpack compose 上绘制 ImageVector

V.R*_*kov 12 kotlin android-jetpack-compose

我通过将 SVG 导入到 android studio 将其转换为矢量资源。如何使用 jetpack compose 将该矢量绘制到画布上。我看到的唯一选项是drawImage,它只接受ImageBitmap。但这是一个矢量而不是位图,所以有没有办法只绘制ImageVector。

val logoVector: ImageVector = ImageVector.vectorResource(id = R.drawable.diasyst_logo)
Run Code Online (Sandbox Code Playgroud)

Adr*_*n K 31

您可以将您的内容包装ImageVector到一个 中VectorPainter,它能够渲染到标准的 compose Canvas。

val vector = ImageVector.vectorResource(id = R.drawable.ic_launcher_foreground)
val painter = rememberVectorPainter(image = vector)
Canvas(modifier = Modifier.fillMaxSize()) {
    with(painter) {
        draw(painter.intrinsicSize)
    }
}
Run Code Online (Sandbox Code Playgroud)