创建了一个svg图标(效果很好)但是,当在android中显示为矢量drawable时,其中一个路径不会呈现相同的效果。 这是原始的svg路径:
<path
d="m 34.424316,19.525423 0,-1.2854 -2.329101,0 0,-0.604248 2.449951,-3.479004
0.53833,0 0,3.479004 0.725098,0 0,0.604248 -0.725098,0 0,1.2854 -0.65918,0 z m
0,-1.889648 0,-2.420655 -1.680908,2.420655 1.680908,0 z"
style="fill:#FF00FF"
id="path3383" />
这就是它的样子:
android路径:
<path
android:fillColor="#FF00FF"
android:pathData="M 34.424316,19.525423 l 0,-1.2854 -2.329101,0 0,-0.604248
2.449951,-3.4790040.53833,0 0,3.479004 0.725098,0 0,0.604248 -0.725098,0 0,1.2854 -0.65918,0 z m
0,-1.889648 0,-2.420655 -1.680908,2.420655 1.680908,0 z" />
它的样子:
P.S。 android studio让它变得模糊,但这不是一个问题,它在Android棒棒糖上渲染得如此清晰。
问题是4中的孔被填满了。即使两个路径大部分都是相同的(唯一的区别是在第一个坐标之后添加了'l'。但是如果我删除它,则4根本不会渲染)。
答案 0 :(得分:1)
帖子的路径数据中没有命令字符。提问者说的是什么&#34; l&#34;在第一组坐标实际上是&#34; M&#34;之后的第一个命令字符后引入。根据文档,如果命令字符与之前相同,则可以省略它以节省空间。但在这里&#34; l&#34;提问者提到的是第一个&#34; l&#34;之后&#34; M&#34; (移动到)命令字符。 &#34; L&#34;是&#34;行到&#34;命令字符。它是第一个在这种情况下不能省略。我修复了文件并给出了下面文件的内容。
我显示你的帖子的第二个路径数据向左移动了10个像素(M 24.424316,19.525423) 我将fillColor更改为蓝色。
<vector xmlns:android="http://schemas.android.com/apk/res/android"
android:width="30dp"
android:height="30dp"
android:viewportWidth="40.0"
android:viewportHeight="40.0">
<path
android:pathData="
m 34.424316, 19.525423
l 0, -1.2854
l -2.329101, 0
l 0, -0.604248
l 2.449951, -3.479004
l 0.53833, 0
l 0, 3.479004
l 0.725098, 0
l 0, 0.604248
l -0.725098, 0
l 0, 1.2854
l -0.65918, 0
m 0, -1.889648
l 0, -2.420655
l -1.680908, 2.420655
l 1.680908, 0 "
android:strokeLineCap="square"
android:strokeColor="#ffff00ff"
android:fillColor="#ff0000ff"
android:strokeWidth="0.2"/>
<path
android:pathData="
M 24.424316, 19.525423
l 0, -1.2854
l -2.329101, 0
l 0, -0.604248
l 2.449951, -3.479004
l 0.53833, 0
l 0, 3.479004
l 0.725098, 0
l 0, 0.604248
l -0.725098, 0
l 0, 1.2854
l -0.65918, 0
m 0, -1.889648
l 0, -2.420655
l -1.680908, 2.420655
l 1.680908, 0 "
android:strokeLineCap="square"
android:strokeColor="#ffff00ff"
android:fillColor="#ff0000ff"
android:strokeWidth="0.2"/>
</vector>
创建一个空白的xml文件并将上述内容复制到其中。然后你应该看到带有洋红色轮廓和蓝色填充的数字4(两次)。我在这里做了,显示很清晰。我不知道提问者提到的模糊的原因。