问题标签 [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.
android - 启动器如何改变自适应图标的形状,包括去除背景?
背景
从 Android O 开始,应用程序可以具有自适应图标,即 2 层可绘制对象:前景和背景。背景是一个蒙版,可以成为启动器/用户选择的形状,而操作系统也有一个默认形状。
这是 Nova Launcher 允许执行的示例:
如您所见,它不仅允许选择要使用的形状,还可以完全避免使用形状(在“首选旧图标”中)。
以下是一些关于它的链接:
- https://www.youtube.com/watch?v=5MHFYfXno9c
- https://medium.com/@ianhlake/vectordrawable-adaptive-icons-3fed3d3205b5
问题
虽然我知道如何创建一个AdaptiveIconDrawable实例,并且我知道帮助为当前应用程序创建一个的向导,但我不明白在给定 AdaptiveIconDrawable 实例的情况下,启动器如何改变形状。
不仅如此,我记得我看到了一两个允许没有任何形状的发射器。
遗憾的是我找不到关于这部分的任何信息,可能是因为这是一个相对非常新的功能。StackOverflow 上甚至没有关键字。
我试过的
我尝试阅读有关自适应图标的信息,但找不到对接收方的参考。
我知道它里面有2个drawable:
- https://developer.android.com/reference/android/graphics/drawable/AdaptiveIconDrawable.html#getBackground()
- https://developer.android.com/reference/android/graphics/drawable/AdaptiveIconDrawable.html#getForeground()
我至少知道如何从第三方应用程序中获取 AdaptiveIconDrawable 实例(假设它有一个):
问题
给定一个 AdaptiveIconDrawable 实例,你如何将它塑造成圆形、矩形、圆角矩形、撕裂等等?
如何删除形状并仍然具有有效的图标大小(使用其前景可绘制)?启动器应用图标的官方尺寸是 48 dp,而 AdaptiveIconDrawable 内部可绘制对象的官方尺寸是 72dp(前景)、108dp(背景)。我想这意味着获取前景可绘制对象,以某种方式调整它的大小,然后转换为位图。
在哪种情况下使用它到底有用
IconCompat.createWithAdaptiveBitmap()
?它写道:“如果您正在使用位图构建动态快捷方式,您可能会发现支持库 26.0.0-beta2 的 IconCompat.createWithAdaptiveBitmap() 有助于确保您的位图被正确屏蔽以匹配其他自适应图标。” ,但我不知道它对哪些情况有用。
编辑:为了从自适应图标的前景部分创建位图,同时调整到适当的大小,我认为这可能是一个很好的解决方案:
可能能够避免同时有 2 个位图,但我认为这没关系。
关于创建各种类型的形状drawable,我仍然不知道该怎么做。我在下面的答案中看到的唯一解决方案是使用圆角矩形或圆形,但还有其他形状(例如撕裂)可以想到。
编辑:谷歌(这里)告诉我应该使用AdaptiveIconDrawable.getIconMask(),但我没有得到任何进一步的信息。但是,我在这里找到了一篇很好的文章。
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 这样的分发服务安装)。
icons - Android oreo 在白色圆形内显示图标
我的 Android 应用程序在 Android oreo 版本的白色圆圈内显示启动器图标。
我想显示启动器图标,因为默认情况下它在奥利奥设备上就像正方形。
浏览了各种博客,发现:
1) 移动用户可以从主屏幕设置屏幕更改图标类型
(但我不想要。默认情况下我只想显示正方形)
2)使用26以下的应用程序目标sdk版本
(我想有最新的 sdk 版本目标和方形启动器图标)
我努力了 :
- 具有背景和前景可绘制对象的自适应图标(不显示方形图标)
- 使用的 mipmap 文件夹
任何人都可以帮助我解决同样的问题吗?
android - 如何根据 VectorDrawables 中的材料设计指南为应用图标创建渐变长阴影?
实际上,我正在开发一个 Android 应用程序。问题是关于在 VectorDrawables 中导出带有渐变的图标。我使用 Adobe Illustrator 绘制图标并将它们导出到 Android Studio 的 Asset Studio。
根据材料设计指南,对象的阴影应该是径向渐变,其中第一个滑块位于 32% 的位置,不透明度为 15%。第二个滑块位于 62% 的位置,不透明度为 2%。最后一个滑块 100% 完全透明,颜色为 45°
我在 Adobe Illustrator 中创建了图标,看起来很完美,并且按照材料设计遵循一切。但是当我将它们导出到 Android Studio 时,图像发生了很大的变化,因为矢量可绘制对象还不完全支持渐变。Android 7.0 + 设备支持 VectorDrawables 中的渐变。另一个问题是谷歌说具有高度的物体应该显示 45° 的长阴影(基于渐变)。但另一方面,它们并不完全支持渐变。如何将渐变应用程序图标扩展到 7.0 以下的设备。
Ps 我导出 Illustrator 文件以支持自适应图标。请有人指导我在 VectorDrawables 中实现渐变阴影,以便它们看起来类似于旧图标
android - 自适应图标在无根像素启动器上不起作用
我在我的应用程序中添加了一个自适应图标。它在 Pixel 和 Pixel 2 上运行良好。但在带有无根像素启动器的 Nexus 6 上它不起作用。我可以在 Nexus 6 上看到其他圆形图标,因此它适用于其他应用程序。
我的清单如下所示:
我看起来像这样mipmap-anydpi-v26
:ic_launcher.xml
我错过了什么?
谢谢。
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 创建单独的文件夹?
flutter - 我可以在 Flutter 应用中使用 Android 8.0 自适应图标吗?
如何在 Android 8.0 及更高版本上为我的 Flutter 应用程序使用自适应图标?Android Studio 中的 Create Image Asset 对话框显示“项目必须使用 SDK 26 或更高版本构建才能使用自适应图标”,即使我的 android build.gradle已将 CompileSDKVersion 设置为 27。如果我在 XML 中定义图标,它不会工作,它似乎只使用常规的旧版应用程序图标。
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 看起来像这样:
我有一个调试和发布配置,可以为发布和调试构建使用不同的背景颜色。
android - 自适应图标形状路径
这就是Launcher3定义图标形状路径的方式。
这些相应地对应于正方形、松鼠、圆形和泪珠。
现在我想知道如何创建自己的形状。我想画一个六边形。