在Android oreo中,instagram如何将图标中的形状更改为不同的蒙版(圆形正方形,泪珠)。
我创建了Android在此页面Designing Adaptive Icons中指示的图标的设计
已安装Direct的设备的屏幕截图:
这是代码!
<?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>
答案 0 :(得分:1)
如here所述,如果您的targetSdkLevel
低于26,则可以使用自己的形状图标,但这不是一个好的长期解决方案(您必须以{{3 }})。如果要针对Oreo,最好的解决方案是生成适当的自适应图标。就是说,我在Pixel 2上看到很多形状不正确的图标(Google视频群聊,Firebase,街景,Firefox,Skype,Facebook Messenger,Outlook等),还有很多其他图标在白色背景上的常规图标。
确切的行为将取决于所使用的启动器,因此,如果您依赖于启动器允许背景层透明或尊重奇怪的图标形状,则设备之间的图标外观会不一致。
为了进行测试,我使用targetSdkLevel
为25进行了一个测试项目,只提供了一个正方形图标,并在装有Android 8.1的模拟Pixel 2上运行它,并得到一个正方形图标,而没有像其他图标那样被迫变圆
然后我升级到targetSdkLevel
到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"
}