Android Studio 3.0矢量drawables和LINT工具:ignore =“VectorPath”

时间:2017-11-06 09:54:11

标签: android lint android-vectordrawable

升级到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/

是否还有其他服务可以减少矢量可绘制的复杂性? 我在哪里可以找到关于我的矢量绘图可以“先进”的指南?

4 个答案:

答案 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...)

enter image description here

答案 3 :(得分:1)

尝试通过减少Precision来使用this tool