cli tool to create jetpack compose ImageVector from vector XML files and SVG files in Android
vec2compose
A CLI tool to create ImageVector
from Android vector XML and SVG.
Setup
Currently this is only available after a local gradle build
$ ./gradlew clean jar packageDistribution
A dist
folder is created with the script and the jar
.
Usage
There are two options to create the ImageVector
. The first option is to create a Kotlin file.
$ ./vec2compose -i ic_done.xml -o DoneIcon.kt
The second option is to print the ImageVector
to the console.
$ ./vec2compose -i ic_done.xml
ImageVector.Builder(
name = "ic_done",
defaultWidth = 24.dp,
defaultHeight = 24.dp,
viewportWidth = 24f,
viewportHeight = 24f
).path(
fill = SolidColor(Color.Black),
fillAlpha = 1f,
stroke = null,
strokeAlpha = 1f,
strokeLineWidth = 1f,
strokeLineCap = StrokeCap.Butt,
strokeLineJoin = StrokeJoin.Bevel,
strokeLineMiter = 1f,
pathFillType = PathFillType.NonZero
) {
moveTo(9.0f, 16.2f)
lineTo(4.8f, 12.0f)
lineToRelative(-1.4f, 1.4f)
lineTo(9.0f, 19.0f)
lineTo(21.0f, 7.0f)
lineToRelative(-1.4f, -1.4f)
lineTo(9.0f, 16.2f)
close()
}.build()
Motivation
This is a project to play around with CLI tools and support the Jetpack Compose development to move further away from XML files in Android projects. A custom icon set can be generated as the material icon set without adding XML resources.