Compose 中的自定义图标

Lor*_*nto 3 icons android vector drawable android-jetpack-compose

我有一个用于动态定义菜单的数据类。

data class ActionItemSpec(
    val contentDescription: String,
    val icon: ImageVector,
    val onClick: () -> Unit
)
Run Code Online (Sandbox Code Playgroud)

我的问题是,当使用标准图标时,它可以完美地工作,但此类问题是它不能采用其他任何东西,例如自定义可绘制对象。

如何从自定义可绘制对象创建 ImageVector?你可以撰写吗?

Pes*_*esa 7

是的,对于自定义图标,您可以在ImageVector对象上调用方法vectorResource()并将矢量资源的 id 传递给那里。

ImageVector.vectorResource(id = R.drawable.myVectorAsset)
Run Code Online (Sandbox Code Playgroud)

我有一个类似的情况,我需要为底部导航栏创建一个自定义图标,这就是我的制作方法:

data class BottomNavItem(
    val name: String,
    val route: String,
    val icon: ImageVector
)

BottomNavItem(
    name = getString(R.string.destination_home),
    route = home,
    icon = ImageVector.vectorResource(id = R.drawable.ic_my_home_icon))
Run Code Online (Sandbox Code Playgroud)