Instagram或Direct如何不改变图标启动器中的形状以在Android Oreo中圈出

时间:2018-07-05 17:39:53

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

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

已安装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>

1 个答案:

答案 0 :(得分:1)

here所述,如果您的targetSdkLevel低于26,则可以使用自己的形状图标,但这不是一个好的长期解决方案(您必须以{{3 }})。如果要针对Oreo,最好的解决方案是生成适当的自适应图标。就是说,我在Pixel 2上看到很多形状不正确的图标(Google视频群聊,Firebase,街景,Firefox,Skype,Facebook Messenger,Outlook等),还有很多其他图标在白色背景上的常规图标。

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

为了进行测试,我使用targetSdkLevel为25进行了一个测试项目,只提供了一个正方形图标,并在装有Android 8.1的模拟Pixel 2上运行它,并得到一个正方形图标,而没有像其他图标那样被迫变圆

November 2018

然后我升级到targetSdkLevel到27,而未添加自适应图标,并将正方形图标放在白色圆圈内。

With targetSdkLevel of 25

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

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