При работе с Xamarin Android создавать картинки загрузки приложений может быть непросто, так как здесь приходится учитывать различия, возникающие в случае с портретным и ландшафтным режимами из-за большой вариативности возможных разрешений экрана и его плотности. К счастью, у системы Android на этот случай есть специальное решение под названием 9-Patch.
Из этой статьи Вы узнаете, как создавать 9-Patch-изображения и как правильно масштабировать их для портретного и ландшафтного режимов. Мы, конечно, исходим из того, что вы уже имеете некоторый опыт в сознании Splashscreen. Если же хотите узнать об основах создания Splashscreen, то в статье «Создание Splashscreen в Xamarin Forms» данная тема освещается весьма подробно.
Размеры изображения
Как вы можете видеть ниже, устройства на базе Android могут быть оснащены экранами очень разных размеров.
Я рекомендую, создавать изображения в максимальном разрешении как для портретного, так и для ландшафтного режимов. Из них мы затем сможем создавать целый ряд изображений 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, которая тоже отлично справится с этой задачей.
Изображение внутри квадрата не будет искажаться при любом размере экрана, но оно может растянуться. Используйте максимально возможное разрешение. Я рекомендую создавать изображения также и для ландшафтного режима.
После того как вы определите соотношение сторон закрытый зоны, скачайте zip. В нём будут содержаться все разрешения вместе с вашим <imagename>.9.png.
Что же касается портретных изображений, то скопируйте эти файлы в папки drawable, как это отражено в zip.
Обратите внимание: при ссылке на это изображение в вашей теме помещать в конце .9 уже не нужно. Продолжайте использовать обычный вариант <imagename> без какого-либо расширения. А система Android позаботится обо всем остальном.
Система Android использует папку suffixes для определения наилучшего изображения, проходящего под определенный режим и разрешение. Позволяя ресурсам детализировать его и определять порядок их появления. Для реализации поддержки ландшафтного режима разместите соответствующие ландшафтные изображения 9-Patch в следующих папках.
- drawable-land
- drawable-land-hdpi
- drawable-land-xhdpi
- и так далее
Автор: Adam Pedley
Источник: Статья на сайте источника
Написать ответ