如何使用minSdkVersion 21从vector drawable启动器图标生成png?

时间:2016-12-04 03:55:45

标签: android android-studio google-play android-gradle android-vectordrawable

我有一个minSdkVersion = 21的应用程序现在使用矢量drawable作为启动器图标。

Google Play使用

拒绝该应用
You need to check the icon inside your APK because it is not valid

因为需要以PNG格式启动图标。

我想在构建过程中为启动器图标生成PNG文件,就像我将minSdkVersion降低到20(但我无法做到这一点,因为应用程序与20或更旧版本兼容)。这可能吗?

编辑:澄清一下,当minSdkVersion为< 21,gradle负责生成矢量绘图的png版本。但是当minSdkVersion> = 21时,gradle会按原样保留矢量drawable,这对启动器图标不起作用。问题是,即使在minSdkVersion> = 21上,是否可以为启动器图像制作矢量绘图的gradle构建png版本。

2 个答案:

答案 0 :(得分:3)

Google Play现在支持矢量绘图(2017年12月)作为启动器图标。 我最近上传并发布了一个带有矢量laucher图标的app

答案 1 :(得分:2)

我不认为在构建过程中可以将android的矢量可绘制格式(也非常类似于SVG)转换为PNG。

在你的情况下,你需要手动将矢量drawable转换为SVG,我认为这并不难,然后将常规SVG转换为PNG(在ImageMagick工具包中转换cmd应该很酷)。

如果您需要一些很酷的工具来生成所有尺寸的启动器图标集,请使用在线网络应用Android Asset Studio

无论如何,我不认为在构建过程中将你的android矢量XML转换为PNG是个好主意,也有可能这样做,你需要编写另一个自定义的android Gradle插件,它可以读取矢量drawable XML文件并首先将其转换为SVG,然后转换为最终的PNG格式。这是很多java或Groovy代码,对于一个简单的项目来说太复杂了。

https://developer.android.com/studio/write/image-asset-studio.html#access 在Android Studio中,它包含一个图像资产编辑工具,就像上面的网络应用程序一样,我想我们现在可以直接在工作室内编辑我们的图像资源。