В помощь мобильному разработчику

9-Patch Splashscreen в Xamarin Android 

Александр Алексеев

При работе с Xamarin Android создавать картинки загрузки приложений может быть непросто, так как здесь приходится учитывать различия, возникающие в случае с портретным и ландшафтным режимами из-за большой вариативности возможных разрешений экрана и его плотности. К счастью, у системы Android на этот случай есть специальное решение под названием 9-Patch.

Из этой статьи Вы узнаете, как создавать 9-Patch-изображения и как правильно масштабировать их для портретного и ландшафтного режимов. Мы, конечно, исходим из того, что вы уже имеете некоторый опыт в сознании Splashscreen. Если же хотите узнать об основах создания Splashscreen, то в статье «Создание Splashscreen в Xamarin Forms» данная тема освещается весьма подробно.

Размеры изображения

Как вы можете видеть ниже, устройства на базе Android могут быть оснащены экранами очень разных размеров.

android-resolution

Я рекомендую, создавать изображения в максимальном разрешении как для портретного, так и для ландшафтного режимов. Из них мы затем сможем создавать целый ряд изображений 9-Patch.

9- Patch изображения

Изображение 9-patch представляет собой обычный png, в котором, помимо прочего, указывается область, поддающаяся растягиванию, и для этого используется черная линия (размером в один пиксель), проходящая вокруг всех 4 краев картинки. Такие изображения необходимо сохранять в виде: <название изображения>.9.png. Когда у изображения стоит расширение в виде 9.png, система Android распознаёт его как 9-patch image и рассматривает черные линии по его краям в качестве ориентира для растягивания лишь определённых частей этого изображения.

Изображение типа 9-Patch можно создать в Android Studio с помощью 9-Patch tool, но учитывая тот факт, что мы все-таки разработчики Xamarin, мы также можем воспользоваться и другой бесплатной утилитой под названием Simple Nine-patch Generator, которая тоже отлично справится с этой задачей.

9patchimage

Изображение внутри квадрата не будет искажаться при любом размере экрана, но оно может растянуться. Используйте максимально возможное разрешение. Я рекомендую создавать изображения также и для ландшафтного режима.

9patchimagelandscape

После того как вы определите соотношение сторон закрытый зоны, скачайте zip. В нём будут содержаться все разрешения вместе с вашим <imagename>.9.png.

Что же касается портретных изображений, то скопируйте эти файлы в папки drawable, как это отражено в zip.

Обратите внимание: при ссылке на это изображение в вашей теме помещать в конце .9 уже не нужно. Продолжайте использовать обычный вариант <imagename> без какого-либо расширения. А система Android позаботится обо всем остальном.

Система Android использует папку suffixes для определения наилучшего изображения, проходящего под определенный режим и разрешение. Позволяя ресурсам детализировать его и определять порядок их появления. Для реализации поддержки ландшафтного режима разместите соответствующие ландшафтные изображения 9-Patch в следующих папках.

  • drawable-land
  • drawable-land-hdpi
  • drawable-land-xhdpi
  • и так далее

Автор: Adam Pedley
ИсточникСтатья на сайте источника

Александр Алексеев
Александр Алексеев

Xamarin - разработчик. Работаю с .NET платформой с 2012 года, программирую в основном с использованием C#. За это время успел поработать с ASP.NET, Entity Framework, MSSQL, Git

Siri о чем спросить

Написать ответ