适用于Android N上的启动器图标和其他图像的Android矢量绘图

JJ8*_*J86 19 android android-vectordrawable android-7.0-nougat

我将在我的应用程序上使用矢量绘图功能的动作栏图标和通知图标.

随着Android N的宣布,他最重要的功能之一是Screen Zoom(在Accessibility Improvements部分).另一个有趣的功能是多窗口支持(如果您想了解更多信息,请参阅链接).

这是否意味着我们应该使用矢量drawable也用于应用程序上使用的启动器图标和其他图像?

ala*_*anv 22

启动器图标不支持矢量drawable.但是,鼓励您在其他地方使用它.

  • 这仍然是正确的吗?我能够像这样使用矢量drawable:<application android:icon ="@ drawable/mysvg_logo"......我甚至可以看到启动器. (3认同)
  • 如果您使用自动矢量=> PNG转换,它将正常工作.如果您只在API 21+上运行,它可能会正常工作,具体取决于您的资产和使用的启动器; 但是,我不认为Play商店会允许您上传带有矢量图标的APK. (3认同)
  • 与此相反,我不仅找到了几个使用矢量图标(XML)作为启动器图标的应用程序,还发现了[本教程](https://google-developer-training.gitbooks.io/android-developer-fundamentals-course-concepts /content/zh-CN/Unit%202/51_c_drawables,_styles,_and_themes.html#creating-icons)甚至建议您这样做。因此,如果有任何(官方)消息来源确认或拒绝您的声明,欢迎您提供链接。 (3认同)
  • 这个答案已经过时了 (2认同)

mix*_*xel 18

如果您按照以下步骤操作,可以使用矢量drawables作为启动器图标:

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

  2. 删除vectorDrawables.useSupportLibrary = truebuild.gradle defaultConfig,如果你前面设置一节.这将为矢量绘图生成构建时PNG生成,其API级别低于21.如果不删除此选项android:icon,则<application>标签的属性将加载默认的Android"绿色机器人"图标.

我在API 16级设备上进行了测试,效果很好.