为什么instagram不会在Android oreo中将图标的形状更改为不同的蒙版(圆形、正方形、泪滴)。
安装了instagram的设备屏幕截图:

我创建了图标的设计,安卓在这个页面的Designing Adaptive Icons指示
直接安装的设备的屏幕截图:

这就是代码!
<?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>发布于 2018-07-06 04:36:04
正如here所讨论的,如果你的targetSdkLevel低于26,你可以使用你自己的形状图标,但是这不是一个很好的长期解决方案(你必须通过November 2018来瞄准26+ )。如果你想瞄准奥利奥,你最好的解决方案是生成一个合适的自适应图标。也就是说,我在Pixel2上看到了很多形状不正确的图标(Google Hangout,Firebase,Street View,Firefox,Skype,Facebook Messenger,Outlook等)还有许多其他的,只是白色背景上的常规图标。
确切的行为将取决于正在使用的启动器,所以如果你依赖允许背景层透明或尊重奇怪的图标形状的启动器,你可能会在设备之间获得不一致的图标外观。
为了测试,我用25的targetSdkLevel做了一个测试项目,只提供了一个正方形的图标,并在装有Android8.1的模拟Pixel2上运行,得到了一个正方形的图标,而不是像其他人一样被强制为圆形。

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

请注意,您不必将compileSdkVersion设置为与targetSdkVersion相同的值。您可以将compileSdkVersion设置为27,并使用v27支持库,同时将targetSdkVersion设置为25,以获得方形图标(直到11月)。
compileSdkVersion 27
defaultConfig {
applicationId "com.example.testproject"
minSdkVersion 15
targetSdkVersion 25
versionCode 1
versionName "1.0"
}https://stackoverflow.com/questions/51197131
复制相似问题