我即将创建我的第一个 Android native(因此不是基于浏览器的)应用程序,并寻找一些有关图标创建/配置的良好做法。 由于它应该支持多种设备/分辨率,我认为最好使用 SVG 来创建它们。至少有这个库:http://code.google.com/p/svg-android/ promise 在 Android 上提供对 SVG 的支持。
到目前为止,我还没有找到描述使用这个或另一个库作为在设备上呈现 SVG 图标的方法的资源,所以我有点不愿意使用它。到目前为止,我看到的最好的方法是使用 SVG 作为源格式,以不同分辨率预渲染基于 png 的图标。
所以我的问题是:SVG 图标是否是直接在设备上使用而无需 png 预渲染步骤的好选择(它是否有效),如果,为什么似乎没有人使用这种方法?
最佳答案
从 Lollipop (API 21) 开始,Android 定义了 VectorDrawable类,用于基于矢量图形定义可绘制对象。 Android Studio 1.4 adds the "Vector Asset Studio"使它们更易于使用,包括 SVG 导入功能和新的 Gradle 插件,该插件可在 API 20 及更早版本的构建时生成 PNG 版本的 VectorDrawable 图标。还有a third-party tool for converting SVGs to VectorDrawables .请记住,虽然矢量可绘制对象可以在 XML 中定义,但文件格式不是 SVG,并且并非所有 SVG 文件都可以成功转换。像图标这样的简单图形应该可以正常工作。
如果您仍需要自己生成 PNG,则需要生成图标 at various resolutions .为了便于生成这些 PNG,我将图标设计为 SVG,然后使用 Inkscape 导出为各种尺寸。这是免费的和跨平台的。它有一些很好的图标设计功能,包括图标预览 View (见下文),它可以生成漂亮的清晰 PNG。
关于android - 在 Android 上使用 SVG 图标的最佳做法是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9647770/