【问题标题】:How to create custom shape using XML as a drawable in Android?如何在 Android 中使用 XML 作为可绘制对象创建自定义形状?
【发布时间】:2017-05-10 07:31:07
【问题描述】:

看看this Gist。

以上要点创建了一个如下所示的可绘制对象:

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

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

像这样的 Drawable 通过避免使用图像来减小应用程序的大小。此外,还有一些关于 XML 中可绘制对象的问题,例如 thisthis 等等,但我认为我的问题非常不同(并且可能很有用)。

【问题讨论】:

  • 使用免费的inkscape工具,将你的绘图保存为*.svg文件,然后使用android studio导入

标签: android xml android-drawable


【解决方案1】:

您可以使用一些工具设计您的 SVG 文件,例如 Android Vector Asset Studio

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

【讨论】:

    【解决方案2】:

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

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

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

    • 选择本地文件

    • 编辑路径以将其指向 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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-03-10
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多