Адаптивные иконки теперь в UE4 для Android

0
8
Адаптивные иконки теперь в UE4 для Android

С выпуском Android 8.0 Oreo (API 26) была добавлена ​​поддержка адаптивных иконок, которые могут отображать различные формы значков на разных моделях устройств. Поскольку все больше устройств используют эти обновления, все чаще можно увидеть дополнительные формы иконок по умолчанию. В результате существующие значки могут отображаться неправильно. Чтобы обеспечить правильное отображение иконок, вам необходимо добавить адаптивные значки в проект. К счастью, это довольно простой процесс, который не требует изменения целевого уровня SDK для работы.

Вот что вам нужно знать: Адаптивные иконки в UE4 для Android

Слева находится стандартная иконка, используемая как адаптивная. Справа находится новый значок, который был изменен для работы с системой адаптивных иконок.

Типы иконок

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

Создание адаптивных иконок

Использовать один растровый значок для адаптивных иконок просто. Начните с создания нового изображения формата PNG размером 108 x 108 с внутренним размером 72 x 72, содержащим ту часть вашего дизайна, в которой вы должны быть уверены. При сохранении этого файла обязательно назовите его icon_bg.png.

Расположение адаптивных иконок

После создания адаптивного значка его необходимо поместить в следующую папку в папке проекта UE4: Build/Android/res/drawable

Это обеспечит включение данного нового значка при создании проекта для устройств Android.

Регистрация вашего адаптивного значка

Теперь вам нужен ресурс значков XML для ссылки на ваше новое изображение адаптивного значка. Сначала создайте новую папку в Build/Android/res с именем drawable-anydpi-v26. Создайте новый XML-файл внутри этой папки с именем icon.xml, а затем добавьте следующее в качестве содержимого файла:


<!--?xml version="1.0" encoding="utf-8"?-->
<adaptive-icon xmlns:android="http://schemas.android.com/apk/res/android">
    <background android:drawable="@drawable/icon_bg">
</background></adaptive-icon>

Вы можете сделать более сложную иконку, но это самый быстрый способ справиться с ней с максимальной совместимостью. Обратитесь к руководству по адаптивным значкам для получения более подробной информации об использовании изображений на переднем плане и векторных фигур: https://developer.android.com/guide/practices/ui_guidelines/icon_design_adaptive

Использование круглой иконки

Возможно, вы также захотите обеспечить поддержку круглого значка, который будет использоваться для формы круга (по умолчанию на некоторых новых устройствах Android). Это требует добавления в AndroidManifest.xml, что легко сделать с языком плагина Unreal, но имейте в виду, что это требует использования проекта кода.

Примечание: любой проект, разработанный только для Blueprint, можно преобразовать в проект кода, добавив пустой класс. Сначала создайте еще одно изображение формата PNG размером 108×108 с именем icon_round.png и скопируйте его в папку проекта UE4: Build/Android/res/drawable. Теперь вам понадобится еще один значок XML-ресурса, чтобы указать его в AndroidManifest.xml. В папке Build/Android/res/drawable-any-dpi-v26 вашего проекта создайте новый файл XML с именем icon_round.xml, а затем добавьте следующее содержимое файла:


<!--?xml version="1.0" encoding="utf-8"?-->
<adaptive-icon xmlns:android="http://schemas.android.com/apk/res/android">
    <background android:drawable="@drawable/icon_round_bg">
</background></adaptive-icon>

Следующий файл UPL должен называться AddRoundIcon_UPL.xml и помещаться в исходный каталог вашего проекта, где находится файл модуля Build.cs. Скорее всего, он будет такой же, что и имя вашего файла проекта, поэтому если ваш проект называется Match3.uproject, вы найдете это в Source/Match3. Вот содержимое этого файла:


<!--?xml version="1.0" encoding="utf-8"?-->
<root xmlns:android="http://schemas.android.com/apk/res/android">
    <!-- init section is always evaluated once per architecture -->
    <init>
    </init>

    <androidmanifestupdates>
        <!-- add roundIcon attribute to application -->
        <addattribute name="”android:roundIcon”" tag="”application”" value="”@drawable/icon_round”/">
    </addattribute></androidmanifestupdates>
</root>

Наконец, нам нужно зарегистрировать этот файл UPL, сделав дополнение к файлу Build.cs вашего проекта {Source/Match3/Match3.Build.cs в предыдущем примере}. Добавьте следующее к этому файлу:


if (Target.Platform == UnrealTargetPlatform.Android)
{
    // Add UPL to add configrules.txt to our APK
    string PluginPath = Utils.MakePathRelativeTo(ModuleDirectory, Target.RelativeEnginePath);
    AdditionalPropertiesForReceipt.Add("AndroidPlugin", System.IO.Path.Combine(PluginPath, "AddRoundIcon_UPL.xml"));
}

После этого вы можете создать свой проект UE4 для Android с помощью стандартного рабочего процесса упаковки. Затем, когда ваш проект будет развернут на устройстве, вы увидите свои новые иконки.