Android Android N 上的启动器图标和其他图像的矢量可绘制对象

Android vector drawable for launcher icon and other images on Android N

我打算在我的应用程序上使用矢量可绘制功能作为操作栏图标和通知图标。

随着 Android N 的发布,他最重要的功能之一是 屏幕缩放(在 Accessibility Improvements section). Another interesting feature is Multi-window support (see link 如果你想了解更多信息)。

这是否意味着我们也应该为应用程序上使用的启动器图标和其他图像使用矢量可绘制对象?

启动器图标不支持矢量可绘制对象。但是,我们鼓励您在其他任何地方使用它。

启动器图标现在似乎支持矢量绘图。 我最近上传并发布了一个 app(至 alpha),其中包含一个可绘制的矢量作为 laucher 图标。

如果您按照以下步骤操作,您可以将矢量可绘制对象用作启动器图标:

  1. 将矢量启动器图标放在 drawable 目录下。您不能将矢量可绘制对象放在 mipmap 目录中,因为它们只能在 API 级别 21 及以上工作。如您所知,建议将 PNG 启动器图标放在 mipmap-<density> 目录下而不是 drawable-<density> 目录下,这很重要,因为如果您有一个拆分的 apk 构建或使用新的 aab 格式上传您的应用程序 ("Google Dynamic Delivery"),这两个进程都将删除除当前密度目录之外的所有 drawable-<density> 目录。

  2. 如果您之前设置过 build.gradle defaultConfig 部分,请删除 vectorDrawables.useSupportLibrary = true。这将为 API 级别低于 21 的矢量绘图启用构建时 PNG 生成。如果您不删除此选项,则 <application> 标签的 android:icon 属性将加载默认值 Android "green robot" 图标。

我在 API 16 级设备上测试过它,它运行良好。