Как instagram или direct не меняют форму в значке лаунчера, чтобы кружить в android oreo - PullRequest
0 голосов
/ 05 июля 2018

Как Instagram не меняет форму в вашей иконке на другую маску (круг, слеза) в Android oreo.

снимок экрана устройства с установленным Instagram:
screen shot of  device with instagram installed

Я создаю дизайн иконки, который Android указывает на этой странице Разработка адаптивных иконок

снимок экрана устройства с установленным 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 голосов
/ 05 июля 2018

Как уже говорилось здесь , вы можете использовать свою собственную фигурную иконку, если ваш targetSdkLevel ниже 26, однако это не является хорошим долгосрочным решением (вам придется нацелить 26+ на Ноябрь 2018 ). Если вы хотите настроить таргетинг на Oreo, лучшим решением будет создание правильного адаптивного значка. Тем не менее, я вижу много иконок на моем Pixel 2, которые имеют неправильную форму (Google Hangouts, Firebase, Street View, Firefox, Skype, Facebook Messenger, Outlook и т. Д.) И многие другие, которые являются только обычная иконка на белом фоне.

Точное поведение будет зависеть от используемого модуля запуска, поэтому если вы полагаетесь на модуль запуска, обеспечивающий прозрачность фонового слоя или учитывающий нечетную форму значка, вы можете получить несовместимый вид значка между устройствами.

Для тестирования я создал тестовый проект с targetSdkLevel из 25, предоставил только квадратную иконку и запустил ее на эмулированном пикселе 2 с Android 8.1 и получил квадратную иконку, не заставляя быть круглой, как другие.

With targetSdkLevel of 25

Затем я повысил до targetSdkLevel из 27, не добавляя адаптивный значок, и он поместил мой квадратный значок в белый круг.

With targetSdkLevel of 27

Обратите внимание, что вам не нужно устанавливать compileSdkVersion на то же значение, что и ваше targetSdkVersion. Вы можете установить compileSdkVersion на 27 и использовать библиотеки поддержки v27, сохраняя targetSdkVersion на 25, чтобы получить квадратный значок (до ноября).

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