首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在帆布喷射器组件上绘制ImageVector

如何在帆布喷射器组件上绘制ImageVector
EN

Stack Overflow用户
提问于 2021-11-26 09:42:44
回答 2查看 5.2K关注 0票数 6

通过将SVG导入到android,我正在将SVG转换为矢量资产。如何用jetpack构图将向量绘制到画布上。我看到的唯一选项是drawImage,它只使用ImageBitmap。但是这是一个向量,而不是位图,所以有一种方法只绘制ImageVector。

代码语言:javascript
复制
val logoVector: ImageVector = ImageVector.vectorResource(id = R.drawable.diasyst_logo)
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2021-11-26 10:41:42

您可以将您的ImageVector包装到一个VectorPainter中,它可以呈现到标准的合成画布中。

代码语言:javascript
复制
val vector = ImageVector.vectorResource(id = R.drawable.ic_launcher_foreground)
val painter = rememberVectorPainter(image = vector)
Canvas(modifier = Modifier.fillMaxSize()) {
    with(painter) {
        draw(painter.intrinsicSize)
    }
}
票数 12
EN

Stack Overflow用户

发布于 2021-11-26 10:45:00

如果不严格要求在Canvas中绘制,则IconImage可组合性将接受矢量图形资源。

代码语言:javascript
复制
Icon(
 imageVector = ...
 contentDescription = ""
)

Image(
 imageVector = ...
 contentDescription = ""
)

除此之外,唯一的方法是基本上将向量转换为可以在drawImage方法Canvas中使用的格式。我知道您关心性能和优化,但是请放心,使用转换方法是没有问题的

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/70122336

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档