升级到3.0后,Android Studio开始抱怨矢量绘图中的长路径。
警告说:
很长的矢量路径(7958个字符),这对性能不利。 考虑降低精度,删除细微的细节或光栅化 向量。 less ...(⌘F1)使用长向量路径对性能不利。 有几种方法可以缩短pathData:*使用less 精度*删除一些细节*使用Android Studio 矢量转换工具*光栅化图像(转换为PNG)
文档https://developer.android.com/guide/topics/graphics/vector-drawable-resources.html向我们展示了如何在我们的应用中使用矢量绘图,并通过png等推荐它。
我一直在使用Android Studio矢量转换工具和这个优秀的服务将SVG转换为矢量drawable: http://inloop.github.io/svg2android/
是否还有其他服务可以减少矢量可绘制的复杂性? 我在哪里可以找到关于我的矢量绘图可以“先进”的指南?
答案 0 :(得分:10)
尝试使用avocado
优化矢量drawable!它应该有助于降低路径的复杂性。
答案 1 :(得分:5)
在使用svg2android
之前,您可以添加一个额外的步骤,~$ svgo image.svg --config=config -o image.svg.optimized
~$ s2v "image.svg.optimized image.xml
正在运行svgo
我使用的示例管道(请注意,我使用的是svg2vectordrawable而不是网络工具)
config
我的"plugins": [
{
"convertPathData": {
"leadingZero": false,
"floatPrecision": 2
}
}
]
文件看起来像(你可以随意使用它来满足你的需求):
Array ( [error] => Array ( ) [result] => Array ( [XXBTZUSD] => Array ( [a] => Array ( [0] => 9506.50000
答案 2 :(得分:4)
我的路径在 1800 左右,我使用 svg-path-editor 降低到 1000 左右。仍然显示警告,但非常接近最大 800
我确信有更好的方法来使用这个工具,但我只是将 pathData
从 android studio xml 复制到 Path 框,按下 Round 并将结果返回到 xml
如果你的路径超过2000,考虑转换成png(有mdpi、hdpi、xhdpi...)
答案 3 :(得分:1)
尝试通过减少Precision
来使用this tool。