Как использовать адаптивные иконки Android в Unity?

13

Начиная с API 26, Android использует так называемые адаптивные значки.

При таргетинге на API 25 и ниже значок моего приложения выглядит нормально:

введите описание изображения здесь

Но при нацеливании на API 26+ он отображается в виде белого кружка примерно так:

введите описание изображения здесь

  • Как я могу настроить таргетинг на API 26+, используя адаптивные иконки Android?
  • Что если я хочу нацеливаться на API 26+, но не использовать адаптивные иконки Android?
Evorlor
источник
Скажем, я заметил, что вы добавили награду за этот вопрос. Есть ли какая-то дополнительная информация, которую вы надеетесь добавить в ответ, помимо вашего подробного объяснения ниже?
DMGregory
@DMGregory Нет. Просто пытаюсь увеличить экспозицию. Я никогда не нашел приличного объяснения реализации адаптивных иконок в Unity, поэтому старался сэкономить время для других. При этом, если у вас или у кого-либо еще есть дополнительная информация, это будет высоко ценится.
Evorlor

Ответы:

23

Как я могу настроить таргетинг на API 26+, используя адаптивные иконки Android?

В настройках вашего плеера в Android на Unity 2018 или более поздней версии в разделе «Иконка» есть место для настройки ваших значков. Вы можете установить значки Legacy, Round и Adaptive. Значки Legacy и Round предназначены для API 25 и ниже. Просто добавьте значок, который вы хотите, альфа и все, и все готово. Адаптивные иконки для API 26+ немного сложнее.

введите описание изображения здесь

Адаптивные иконки состоят из двух частей. Фон и передний план .

Фон

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

Android определяет обрезку и перевод фонового изображения. В приведенном ниже примере фон представляет собой синее изображение с белой сеткой на нем. Обратите внимание, что фон выглядит хорошо, несмотря на то, что квадрат обрезается в круг, а фон перемещается.

введите описание изображения здесь

передний план

Передний план будет вашей настоящей иконой. Альфа требуется для этого изображения. Внешняя 1/6 вашего изображения может быть скрыта за кадрированием. Это означает, что изображение должно быть уменьшено до 66,67% или первоначального размера, в то время как холст остается в полном размере. В приведенном ниже примере изображение имеет размер 432x432 пикселей; однако левая, правая, верхняя и нижняя части изображения имеют прозрачность 72 пикселя.

введите описание изображения здесь

Конечный результат масштабирования изображения на 66,67% полностью заполнит спрайт внутри круга, в то время как фон отображается за прозрачными пикселями.

На различных устройствах значок можно перемещать за пределы области обрезки, если не было буфера. Например, на синем значке выше, передний план составляет примерно 35% от исходного размера. Если бы он составлял 66,67% от исходного размера, то лицо Android могло бы исчезнуть из поля зрения.

пример

Так что, если это был наш фон и передний план, так что содержимое нашего переднего плана составляет 2/3 размера нашего фона:

введите описание изображения здесьвведите описание изображения здесь

Тогда это распакованная версия нашей иконки:

введите описание изображения здесь

Но то, что мы действительно могли видеть на устройстве (при условии, что Android не делает ничего «адаптивного» в данный момент), это:

введите описание изображения здесь


Что если я хочу нацеливаться на API 26+, но не использовать адаптивные иконки Android?

Тебе нельзя.


Я до сих пор не понимаю.

Возможно, Android или Unity могут объяснить это лучше.

Evorlor
источник