java - instagram 或 direct 如何不改变图标启动器中的形状以在 android oreo 中圈出

标签 java android android-studio kotlin android-8.0-oreo

instagram 如何在 Android oreo 中不将图标中的形状更改为不同的 mask (圆圈、正方形、泪珠)。

安装了 Instagram 的设备屏幕截图:
screen shot of  device with instagram installed

我在本页中创建了Android指示的图标设计Designing Adaptive Icons

安装了 Direct 的设备屏幕截图:

enter image description here

这是代码!

    <?xml version="1.0" encoding="utf-8"?>
    <adaptive-icon xmlns:android="http://schemas.android.com/apk/res/android">
        <background android:drawable="@color/ic_launcher_background"/>
        <foreground android:drawable="@mipmap/ic_launcher_foreground"/>
    </adaptive-icon>

            <category android:name="android.intent.category.LAUNCHER" />
        </intent-filter>
    </activity>

    <receiver
        android:name=".NotificationReceiver"
        android:enabled="true"
        android:exported="false"></receiver>
</application>

最佳答案

讨论 here ,如果您的 targetSdkLevel 低于 26,您可以使用您自己的形状图标,但这不是一个好的长期解决方案(您必须通过 November 2018 将目标设为 26+)。如果你想针对 Oreo,你最好的解决方案是生成一个合适的自适应图标。也就是说,我在 Pixel 2 上看到很多图标形状不正确(Google Hangouts、Firebase、Street View、Firefox、Skype、Facebook Messenger、Outlook 等...)以及许多其他形状不正确的图标白色背景上的常规图标。

确切的行为将取决于所使用的启动器,因此如果您依赖启动器允许背景层透明或遵守奇怪的图标形状,您可能会在设备之间获得不一致的图标外观。

为了测试,我制作了一个 targetSdkLevel 为 25 的测试项目,只提供了一个方形图标,然后在装有 Android 8.1 的模拟 Pixel 2 上运行它,得到了一个方形图标,而不是强制为圆形和其他人一样。

With targetSdkLevel of 25

然后我将 targetSdkLevel 升级到 27,但没有添加自适应图标,它把我的方形图标放在白色圆圈内。

With targetSdkLevel of 27

请注意,您不必将 compileSdkVersion 设置为与 targetSdkVersion 相同的值。您可以将 compileSdkVersion 设置为 27,并使用 v27 支持库,同时将 targetSdkVersion 保持在 25,以获得方形图标(直到 11 月)。

compileSdkVersion 27
defaultConfig {
    applicationId "com.example.testproject"
    minSdkVersion 15
    targetSdkVersion 25
    versionCode 1
    versionName "1.0"
}

关于java - instagram 或 direct 如何不改变图标启动器中的形状以在 android oreo 中圈出,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51197131/

相关文章:

java - 带有 Akka actor 的 UI 中的 Vaadin 通知

java - 在 Android 应用程序中添加 IMEI 号码?

Android Studio - 相对布局中软键盘上方的小部件

java - RealmTransactions IDE 编辑器错误 : Expected Identifier

java - HashMap 违背了我的值(value)观

java - 对 JPA 连接的 SQL 查询

android - 从 Phonegap 应用程序中启动应用程序

android - 在继续应用程序之前等待 SoundPool 加载

java - Android:在主菜单上显示高分

java - 从 Java 中的 Mule 对象存储中检索源代码