【问题标题】:forcing square app icon强制方形应用程序图标
【发布时间】:2018-07-28 11:31:23
【问题描述】:

我将为我使用 Android Studio 制作的 Android 应用设置一个方形应用图标。

我用 File -> New -> Vector Asset
设置了我自己的应用程序图标 这将创建一个普通的圆形应用图标。

如果我复制并重命名 (ic_launcher_round.png) 二次应用图标并将其安装在例如 OnePlus Launcher 上,我也会得到圆形图标。

我的 Logo 是方形的,所以看到圆形真的很难看。
如何强制使用二次应用程序图标?这可能吗?

如果我在 Manifest.xml 中只设置 android:icon="@mipmap/ic_launcher" 而不是这个和 android:roundIcon="@mipmap/ic_launcher_round",则没有任何变化。

【问题讨论】:

    标签: android icons android-manifest appicon


    【解决方案1】:

    当启动器决定将其变为圆形时,您的应用图标变为圆形。

    “启动器”只是另一个应用程序,就像您的应用程序一样,但它不是您的应用程序 - 它与它完全分离,您通常不能影响与您的应用程序进程分离的任何进程,操作系统会禁止这样做. 只有有时您才能通过使用操作系统提供的某种形式的进程间通信 (IPC) 来做类似的事情,当然前提是您要与之通信的进程也“愿意与您交谈”[利用相同形式的 IPC 来允许其他进程更改其某些行为]。

    此外,您使用 Android Studio 向导的目的是帮助您生成随时可用的可绘制文件,它只是为了节省您在某些图像编辑器中自行制作这些可绘制文件的时间。

    在 XML 清单文件中作为应用程序圆形图标的任何可绘制集都将在最后被四舍五入,这与它的实际外观无关。我不认为您可以期望任何当前可用的主要启动器应用程序将某些应用程序的图标显示为圆形和一些方形。这会严重损害其用户体验。

    恐怕您必须适应这种情况,将方形应用的徽标缩小一点,并在其周围留出一些空白空间,以便最终用户的启动器应用在此徽标周围画一个圆圈。

    您可以在此处找到有关设计 Android 应用启动器图标的官方建议:https://material.io/guidelines/style/icons.html#icons-icons-for-androidhere 您可以阅读有关 Android 应用图标主题的最新方法:自适应图标。任何其他类型的图标都可以被视为“旧版”,并且仅在针对低于 26 的 API 时出于兼容性原因使用。

    编辑: 在 cmets 部分中,OP 提到了一些应用程序的最新版本中确实有方形图标,而这实际上是其开发人员的一个小的 UX 设计缺陷。

    作为一个例子,我下载了提到的字节币应用程序 OP,这就是它在我的手机 Android 7.0 上的样子:

    角落里的红色物体被切掉了。我认为我们可以假设 Google Play 上显示方形徽标的所有其他应用程序(在他们的商店页面中看起来不错,因为 Google Play 允许方形徽标)在安装在具有现代版本启动器的手机上时会看起来很糟糕,尤其是 api > =26。

    【讨论】:

    • 感谢您的详细解释!是否有可用的列表,我可以在其中查看不同尺寸所需的像素?如有必要,我将不得不手动调整照片编辑器中的圆形图标。由启动器四舍五入的应用程序图标真的很难看......但我还有一个问题。 “Bytecoin”应用程序或“DB Navigator”应用程序的图标如何保持圆角方形?启动器是否使这个任意?
    • @Hannes 请查看我编辑的答案。我添加了一些链接,这些链接可能已经回答了您的第一个问题,如果它们没有完全回答,我认为您无法在几分钟内自己搜索并知道答案。关于您的第二个问题:抱歉,我不知道,如果不知道您的私人电话和启动器的具体信息,恐怕无法为您提供帮助。
    • 谢谢,我将其标记为解决方案。我的一些用户拥有带有 OnePlus Launcher 的 oneplus 3t。
    • 我知道了,其中一位用户也安装了 Warship (play.google.com/store/apps/details?id=net.wargaming.wows.blitz)。这有一个二次图标....
    • @Hannes 在一个完美的世界中,当操作系统制造商宣布为其系统制定一个新的约定时,它的所有开发人员都会立即适应这个约定,但是在我们的世界中,情况有所不同。您提到的应用程序确实都有二次图标,但实际上,它们不应该。只是为了向你证明这个“概念”,我刚刚下载了那个“Bytecoin”应用程序,它在我的手机 [Android 7.0] 上是这样的:i.imgur.com/GrueuD0.jpg 如你所见 - 红色对象被切断 - 这是一个 (小)其开发人员的用户体验缺陷。
    【解决方案2】:

    如果你的目标SDK是26,android设备版本是8,应用图标会是圆形的。

    实现这一目标的方法之一是(不确定这是否是正确/最佳的方法)

    在 AndroidManifest.xml 中我必须设置

    android:targetSdkVersion=“20”

    <uses-sdk android:minSdkVersion=“16" android:targetSdkVersion=“20” />
    

    android:roundIcon=“@mipmap/ic_launcher_round”

    <application android:hardwareAccelerated=“true” android:icon=“@mipmap/ic_launcher” android:label=“@string/app_name” android:roundIcon=“@mipmap/ic_launcher_round” android:supportsRtl=“true”>
    

    确保 ic_launcher_round 图像是平方的。

    我使用 android studio 来生成自适应图标和传统图标……

    我删除了android studio生成的ic_launcher_round图片。

    我将 ic_launcher 图像(通常是方形图标)复制到 ic_launcher_round。

    现在我的 ic_launcher_round 是平方图标。

    (ic_launcher_round.png, ic_launcher.png, icon.png) 都是同一张图片

    进行此更改后,重新构建应用程序。现在您应该在安装应用程序时看到方形图标。

    【讨论】:

    • 谢谢,将 targetSDK 设置为 25 恢复了我的方形图标。可能不是正确的解决方案,但现在可以。
    • 从 8 月 1 日开始,Google 将强制将新应用的 targetSdk 设置为 +26。参考:developer.android.com/distribute/best-practices/develop/…
    • 添加android:roundIcon="@mipmap/ic_launcher_round" 为我工作:)
    【解决方案3】:

    自 Android 8.0 (Oreo) 起

    现在描述了为 Android 设计应用程序图标的新方法:

    Android 8.0(API 级别 26)引入了自适应启动器图标,可以在不同的设备型号上显示各种形状。

    使用自适应图标时,启动器图标有 2 层:foregroundbackground(请参阅Creating adaptive icons in XML)。

    形状(圆形、方形...)可能因系统/启动器设置而异。

    Android 8.0 之前

    可以通过这种方式生成旧图标:Create a legacy launcher icon

    【讨论】:

      猜你喜欢
      • 2018-11-22
      • 2016-08-28
      • 2014-06-17
      • 2014-11-28
      • 2016-04-01
      • 2015-04-08
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多