使用 PDF 或矢量文件在 Android Studio 中添加所有尺寸的图像资源

Posted

技术标签:

【中文标题】使用 PDF 或矢量文件在 Android Studio 中添加所有尺寸的图像资源【英文标题】:Add all sizes of image asset in Android Studio with a PDF or Vector file 【发布时间】:2016-04-02 15:07:04 【问题描述】:

在使用 Xcode 进行 ios 开发时,这非常方便,因为您可以使用一个 .pdf 文件添加图像资源或启动器图标,它会自动生成所有必要的大小。可以使用 Adob​​e Illustrator 或类似的制作矢量图形的程序创建 .pdf 文件。

与其坐在那里一次导出每个大小的图标/图像资源,有没有一种快速的方法可以将矢量图像添加到 android Studio 并让它自己填充所有相关大小的文件夹?或者一般来说,有没有办法以某种方式完成同样的事情?

我看过其他帖子,人们建议使用在线工具获取您的 .png 图像并让您下载具有所有不同图像大小的 .zip,但根据定义,该方法不会产生清晰和高质量图像资产。你总是想从一个向量出发。

【问题讨论】:

【参考方案1】:

有没有一种快速的方法可以将矢量图像添加到 Android Studio 并让它自己填充所有相关大小的文件夹?

在 Android Studio 1.5 及更高版本中使用 File > New > Vector Asset。这将允许您导入 SVG 文件。 Android Studio 将尝试将其转换为a vector drawable resource,并取得了不同程度的成功。如果您使用的是最新版本的 Android Plugin for Gradle(1.5.0 或更高版本应该可以运行 AFAIK),构建工具还将从矢量可绘制对象生成 PNG 以在旧设备(Android 4.4 和更早版本)上使用。

但根据定义,该方法不会产生清晰和高质量的图像资产

您在旧设备上没有太多选择。您可以尝试使用一些已弃用的 VectorDrawable 反向移植,但 Google 放弃了它们。

你总是想从一个向量出发。

不一定。请记住,并非每个人都拥有高端移动设备。渲染 SVG 或其他矢量图是比较昂贵的,这就是为什么 Android 不直接支持它(并且仍然不直接支持 SVG 本身)。

【讨论】:

有趣。如果渲染这些 SVG 是一项艰巨的计算任务(至少现在在移动世界中),我似乎应该坚持使用光栅图像的古老且真实的方法。 @MicroR:矢量资产向导以及构建工具将进行设置,以便您在 Android 5.0+ 设备上使用矢量可绘制对象,在 Android 4.4 和年纪大了。我的理解是,vector drawable 的定义可以直接在 GPU 上处理,并且 Android 5.0+ 设备的 GPU 要求设置为支持这些 GPU 操作。 您是否知道从 SVG/Vector 文件到光栅中所有不同大小的图像资源的便捷方法?到目前为止,我的技术是使用 Ai 并一一导出所有尺寸(这很耗时)。 @MicroR:我似乎记得有人为它制作了一个实用程序(Gradle 插件?),但我手头没有详细信息。

以上是关于使用 PDF 或矢量文件在 Android Studio 中添加所有尺寸的图像资源的主要内容,如果未能解决你的问题,请参考以下文章

将道场图表导出为 pdf 或其他一些矢量格式

将 Lottie Android 与矢量图像 (xml) 或 svg 图像一起使用?

如何将 PSD 文件中的所有图层导出为 PDF 矢量以在 Xcode 6 中使用资产目录

Ghostscript 如何处理没有颜色的矢量对象

带有 PDF 矢量图像的资产目录不会为 iOS 导出 @3x 分辨率

处理 PDF 以减少文件大小/和/或复杂性