破碎的矢量drawable与android fillType = evenOdd

时间:2018-04-26 04:14:11

标签: android svg vector android-vectordrawable

android:fillType="evenOdd" 

让Android 21上的vectror drawable打破了,无论如何我们可以修复这个向量吗?

我还反编译了release.apk并发现他们删除android:fillType="evenOdd"甚至在debug.apk上它已经     android:fillType="evenOdd"但仍在应用

上显示已损坏的图片

1 个答案:

答案 0 :(得分:1)

解决方案1 ​​

Sketch中的Flattern图片并使用this site将SVG转换为适用于Android的xml

解决方案2

我使用nonZero而不是evenOdd并在Sketch中打开它以反转Order后反转它将更改pathData并删除android:fillType并且一切正常在Android 21 +上运行。

解决方案3

PNG

TLDR

经过一些研究后我发现有两种填充规则属性方法用于矢量图形,SVG,“偶数”与“非零”

我在Sketch中打开了SVG图标并检查了图标顶部的孔。正如预期的那样,它使用fill-rule:evenodd属性。现在我必须更改fill-rule以使用“nonzero”属性。怎么样?选择路径。在右侧,“填充”属性中有一个设置图标。单击它并选择“非零”。

从主菜单中,选择“图层”→“路径”→“反向顺序”。我在图标的顶部找到了一个洞,并在应用程序中找到了洞。

For more detail