问题标签 [adaptive-icon]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
6 回答
5277 浏览

android - 启动器如何改变自适应图标的形状,包括去除背景?

背景

从 Android O 开始,应用程序可以具有自适应图标,即 2 层可绘制对象:前景和背景。背景是一个蒙版,可以成为启动器/用户选择的形状,而操作系统也有一个默认形状。

这是 Nova Launcher 允许执行的示例:

在此处输入图像描述

如您所见,它不仅允许选择要使用的形状,还可以完全避免使用形状(在“首选旧图标”中)。

以下是一些关于它的链接:

问题

虽然我知道如何创建一个AdaptiveIconDrawable实例,并且我知道帮助为当前应用程序创建一个的向导,但我不明白在给定 AdaptiveIconDrawable 实例的情况下,启动器如何改变形状。

不仅如此,我记得我看到了一两个允许没有任何形状的发射器。

遗憾的是我找不到关于这部分的任何信息,可能是因为这是一个相对非常新的功能。StackOverflow 上甚至没有关键字。

我试过的

我尝试阅读有关自适应图标的信息,但找不到对接收方的参考。

我知道它里面有2个drawable:

我至少知道如何从第三方应用程序中获取 AdaptiveIconDrawable 实例(假设它有一个):

问题

  1. 给定一个 AdaptiveIconDrawable 实例,你如何将它塑造成圆形、矩形、圆角矩形、撕裂等等?

  2. 如何删除形状并仍然具有有效的图标大小(使用其前景可绘制)?启动器应用图标的官方尺寸是 48 dp,而 AdaptiveIconDrawable 内部可绘制对象的官方尺寸是 72dp(前景)、108dp(背景)。我想这意味着获取前景可绘制对象,以某种方式调整它的大小,然后转换为位图。

  3. 在哪种情况下使用它到底有用IconCompat.createWithAdaptiveBitmap()?它写道:“如果您正在使用位图构建动态快捷方式,您可能会发现支持库 26.0.0-beta2 的 IconCompat.createWithAdaptiveBitmap() 有助于确保您的位图被正确屏蔽以匹配其他自适应图标。” ,但我不知道它对哪些情况有用。


编辑:为了从自适应图标的前景部分创建位图,同时调整到适当的大小,我认为这可能是一个很好的解决方案:

可能能够避免同时有 2 个位图,但我认为这没关系。

关于创建各种类型的形状drawable,我仍然不知道该怎么做。我在下面的答案中看到的唯一解决方案是使用圆角矩形或圆形,但还有其他形状(例如撕裂)可以想到。


编辑:谷歌(这里)告诉我应该使用AdaptiveIconDrawable.getIconMask(),但我没有得到任何进一步的信息。但是,我在这里找到了一篇很好的文章。

0 投票
0 回答
758 浏览

android - 从 APK 安装时显示默认启动器图标而不是自适应启动器图标

我按照文档通过使用<adaptive-icon>in创建 XML 来实现新的自适应图标res/mipmap-anydpi-v26/cs_ic_launcher.xml。该图标在清单中正确设置。

从 Android Studio 安装应用程序时一切正常。但是,当我从 APK 安装应用程序时,默认的 Android 图标会显示在 Oreo 上。

在较旧的 Android 版本上,使用了 mipmap 文件夹中的正确图标。

在此处输入图像描述

我分析了 APK 并且自适应图标 XML 文件那里,但由于某种奇怪的原因,当应用程序未从 Android Studio 运行时(例如通过从命令行安装 APK 或通过像 HockeyApp 这样的分发服务安装)。

0 投票
1 回答
16178 浏览

icons - Android oreo 在白色圆形内显示图标

我的 Android 应用程序在 Android oreo 版本的白色圆圈内显示启动器图标。

我想显示启动器图标,因为默认情况下它在奥利奥设备上就像正方形。

浏览了各种博客,发现:

1) 移动用户可以从主屏幕设置屏幕更改图标类型

(但我不想要。默认情况下我只想显示正方形)

2)使用26以下的应用程序目标sdk版本

(我想有最新的 sdk 版本目标和方形启动器图标)

我努力了 :

  1. 具有背景和前景可绘制对象的自适应图标(不显示方形图标)
  2. 使用的 mipmap 文件夹

任何人都可以帮助我解决同样的问题吗?

0 投票
0 回答
1778 浏览

android - Android 8 上的非自适应图标

我正在开发一个应用程序,该应用程序在 Android 8 上获得了一个非常丑陋的图标(如下图中的 LinkedIn 应用程序)。为了解决这个问题,网上说我需要实现自适应图标。很公平。问题是拥有该应用程序的公司想要一个方形图标,但自适应图标不能保证这一点。我看到一些应用程序在 Android 8 上具有方形、不难看的图标(例如图像中的 Morning Routine 和 Norsk Tipping)。有谁知道这是怎么做到的?

截屏

0 投票
1 回答
1337 浏览

android - 如何根据 VectorDrawables 中的材料设计指南为应用图标创建渐变长阴影?

实际上,我正在开发一个 Android 应用程序。问题是关于在 VectorDrawables 中导出带有渐变的图标。我使用 Adob​​e Illustrator 绘制图标并将它们导出到 Android Studio 的 Asset Studio。

根据材料设计指南,对象的阴影应该是径向渐变,其中第一个滑块位于 32% 的位置,不透明度为 15%。第二个滑块位于 62% 的位置,不透明度为 2%。最后一个滑块 100% 完全透明,颜色为 45°

我在 Adob​​e Illustrator 中创建了图标,看起来很完美,并且按照材料设计遵循一切。但是当我将它们导出到 Android Studio 时,图像发生了很大的变化,因为矢量可绘制对象还不完全支持渐变。Android 7.0 + 设备支持 VectorDrawables 中的渐变。另一个问题是谷歌说具有高度的物体应该显示 45° 的长阴影(基于渐变)。但另一方面,它们并不完全支持渐变。如何将渐变应用程序图标扩展到 7.0 以下的设备。

Ps 我导出 Illustrator 文件以支持自适应图标。请有人指导我在 VectorDrawables 中实现渐变阴影,以便它们看起来类似于旧图标

0 投票
1 回答
499 浏览

android - 自适应图标在无根像素启动器上不起作用

我在我的应用程序中添加了一个自适应图标。它在 Pixel 和 Pixel 2 上运行良好。但在带有无根像素启动器的 Nexus 6 上它不起作用。我可以在 Nexus 6 上看到其他圆形图标,因此它适用于其他应用程序。

我的清单如下所示:

我看起来像这样mipmap-anydpi-v26ic_launcher.xml

我错过了什么?

谢谢。

0 投票
1 回答
2343 浏览

android - 在 api 26+ 中使用自适应图标的正确方法

我设法通过创建一个文件夹mipmap-anydpi并将建议的 xml 文件放在那里(https://developer.android.com/guide/practices/ui_guidelines/icon_design_adaptive.html#studio)使我的自适应图标工作

这适用于 api 26,但在低于该版本的 android 版本上破坏了图标,它们现在显示默认的 android 图像。我设法通过将我的文件夹重命名为 来解决这个问题mipmap-anydpi-v26,现在图标在所有支持的 api 上都可以正常工作。

我的问题是,我们应该这样做吗?是否也可以在 api 27+ 上运行,或者我-v26必须-v2X为每个未来的 api 创建单独的文件夹?

0 投票
1 回答
6666 浏览

flutter - 我可以在 Flutter 应用中使用 Android 8.0 自适应图标吗?

如何在 Android 8.0 及更高版本上为我的 Flutter 应用程序使用自适应图标?Android Studio 中的 Create Image Asset 对话框显示“项目必须使用 SDK 26 或更高版本构建才能使用自适应图标”,即使我的 android build.gradle已将 CompileSDKVersion 设置为 27。如果我在 XML 中定义图标,它不会工作,它似乎只使用常规的旧版应用程序图标。

0 投票
0 回答
247 浏览

android - 使用自适应启动器图标时出现 Lint 错误

由于我为我的应用程序使用了自适应启动器图标,因此在构建我的应用程序时出现 lint 错误。

错误:清单中引用的资源不能因配置而异(版本限定符除外,例如 -v21。)在 anydpi-v26 [ManifestResource] 中发现了变化 android:roundIcon="@mipmap/ic_launcher_round"se src\main\res\mipmap-anydpi-v26\ic_launcher_round.xml:2: This value will not be used for questions of type "ManifestResource": Elements in the manifest can reference资源,但这些资源不能因配置而异(除了作为特殊情况,按版本,除了一些特定的包属性,如应用程序标题和图标。)

我不知道“android:roundIcon='@mipmap/ic_launcher_round'se”中的“se”来自哪里,如果这是问题。

我正在使用 Android Studio 3.1.3(也尝试过使用早期版本 3.1.2)

谁能告诉我我做错了什么或问题出在哪里?

更新 我的 ic_launcher_round.xml 看起来像这样:

我有一个调试和发布配置,可以为发布和调试构建使用不同的背景颜色。

0 投票
1 回答
322 浏览

android - 自适应图标形状路径

这就是Launcher3定义图标形状路径的方式。

这些相应地对应于正方形、松鼠、圆形和泪珠。

现在我想知道如何创建自己的形状。我想画一个六边形。