gpt4 book ai didi

Android Vector Drawable 与 SVG 路径不同

转载 作者:行者123 更新时间:2023-11-29 01:29:56 25 4
gpt4 key购买 nike

创建了一个 svg 图标(效果很好)但是,当在 android 中显示为矢量可绘制对象时,其中一个路径呈现不一样。这是原始 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" />

这是它的样子:

svg path

安卓路径:

<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" />

它的样子:

android path

附言android studio 使它变得模糊,但这不是问题,它在 Android Lollipop 上呈现出应有的清晰度。

问题是 4 中的孔被填充了。即使两条路径基本相同(唯一的区别是在第一个坐标后添加了“l”。但是如果我删除它,则 4 根本不会呈现)。

最佳答案

您帖子的路径数据中没有命令字符。提问者所说的在第一组坐标之后引入的“l”实际上是“M”之后的第一个命令字符。根据文档,如果命令字符与之前的字符相同,则可以省略它以节省空间。但这里提问者所指的“l”是“M”(移动到)命令字符后的第一个“l”。 “l”是“line to”命令字符。在这种情况下它是第一个不能省略。我修复了该文件,并在下面给出了文件的内容。

我显示您帖子的第二个路径数据向左移动了 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(两次)。我在这里做的,显示很清晰。我不知道提问者提到的模糊的原因。

关于Android Vector Drawable 与 SVG 路径不同,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31764467/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com