如何使用XML作为Android中的drawable创建自定义形状?

时间:2016-12-25 12:09:13

标签: android xml android-drawable

查看this Gist。

上面的要点创建一个可绘制的,如下所示:

enter image description here

显然,在要点中,pathData属性已提供坐标。我的意思是,这是如何实现的,当然有人没有根据他的需要找到每一点。

我的问题:这是如何实现的?是否有任何工具可以这样做?

像这样的Drawable通过避免使用图像来减少应用程序的大小。此外,还有像thisthis等XML中的drawable一样的问题,但我认为我的问题非常不同(可能很有用)。

2 个答案:

答案 0 :(得分:0)

您可以使用Android Vector Asset Studio

等工具设计SVG文件

通常人们不会自己编写SVG路径,他们使用工具或编辑器绘制绘图并生成文件。

答案 1 :(得分:0)

您需要做的是使用Inkscape之类的SVG编辑器(我使用的一个)来创建SVG图像。 或者,如果您想要更专业(且昂贵)的编辑器,则可以使用Adobe Illustrator。您甚至可以使用在浏览器中可以访问的名为svg-edit的工具。

创建所需的艺术品后,保存SVG文件。 接下来转到并打开Android Studio。

  • 右键单击res文件夹(通常放置可绘制对象的任何文件夹)
  • 选择“新建”>“矢量资产”。这将打开以下窗口。

enter image description here

  • 选择本地文件

enter image description here

  • 编辑路径以将其定向到svg文件的位置
  • 取决于图像的复杂性,可能会引发错误(并非所有svg元素都会转换为xml。因此,请避免在svg中使用复杂的图形,在这种情况下使用光栅图像)。
  • Android Studio会自行进行一些修复。因此,即使抛出错误,如果您的图像呈现良好,那您就很好了。
  • 点击下一步>调整其他一些设置>点击完成
  • 您的xml向量资产已成功创建。

注意: 为了确保向后兼容,请将以下内容添加到build.gradle

android{
         defaultConfig{
                        vectorDrawables.useSupportLibrary = true
                      }
       }
dependencies{
              compile 'com.android.support:appcompat-v7:23.2.0'
            }

希望这对您有所帮助。 有关更多信息,请参见official documentation