Как использовать 9 изображений патчей в Android для разных 2-х плотностей (например, MDPI, HDMI, HDMI).? - PullRequest
5 голосов
/ 28 сентября 2011

Я создаю приложение для Android, в котором мне нужна поддержка нескольких экранов. Для этих целей я использовал 9 изображений патчей.

Но мой вопрос заключается в том, будет ли достаточно использовать 9 изображений патчей для устройств с различной плотностью 2, или мне нужно будет создать 2 9 изображений патчей для различной плотности (например, mdpi, ldpi, hdpi).

Заранее спасибо

Ответы [ 3 ]

17 голосов
/ 04 октября 2011

Я недавно обнаружил, что попал в ту же ситуацию, поэтому позвольте мне рассказать и расширить то, что уже было сказано ...

Да, 9-патч-изображения будут масштабироваться, вот для чего они существуют. Но если вам нужно использовать изображение с 9-ю участками для всех плотностей экрана, это действительно зависит от изображения. 9-патч изображения используются чаще, например, кнопки. В вашем приложении могут быть кнопки разных размеров, и изображение с 9-патчами поможет с ними справиться, независимо от размера кнопки (если изображение с 9-патчами правильно создано).

Но допустим, что у вашего дизайна кнопок есть несколько действительно круглых углов для версии hdpi. Вы создаете свое изображение с 9 участками, не запутывая углы, но когда вы посмотрите на него в версии ldpi, вы поймете, что ваши углы слишком велики для этого низкого разрешения. В этой ситуации вам понадобится другое изображение с 9 участками с меньшим количеством закругленных углов, которое будет выглядеть лучше в этом разрешении.

Итак, окончательный ответ: это действительно зависит от вашего имиджа. Если вы можете создать 9-патчовое изображение, которое выглядит хорошо во всех плотностях, чем хорошо, используйте его, так как вам нужно только одно изображение для обработки всех плотностей. Но если он выглядит не очень хорошо из-за углов, градиентов или чего-то еще, вам понадобится одно изображение с 9 пятнами для каждой плотности экрана.

Надеюсь, теперь все стало понятнее.

2 голосов
/ 28 сентября 2011

Из документации: девять патчей

Графический объект NinePatchDrawable представляет собой растягиваемое растровое изображение, которое Android автоматически изменит в соответствии с содержимым представления, в котором вы поместили его в качестве фона. Примером использования NinePatch являются фоны, используемые стандартными кнопками Android - кнопки должны растягиваться для размещения строк различной длины. Рисуемое NinePatch - это стандартное изображение PNG, которое содержит дополнительную границу шириной в 1 пиксель. Он должен быть сохранен с расширением .9.png и сохранен в директории res / drawable / вашего проекта.

ответ - нет. вы девять патч будет масштабироваться между различными размерами экрана

0 голосов
/ 01 июня 2016

Краткий ответ ДА. Проверьте это:

По умолчанию Android масштабирует ваши растровые изображения (файлы .png, .jpg и .gif) и Nine-Patch (файлы .9.png) так, чтобы они отображались в соответствующем формате. физический размер на каждом устройстве. Например, если ваше приложение предоставляет растровые изображения только для базовая линия, средняя плотность экрана (MDPI), а затем система масштабирует их при высокой плотности экран, и уменьшает их, когда на экране низкой плотности. Это масштабирование может вызвать артефакты в растровые изображения. Чтобы ваши растровые изображения выглядели лучше, вы должны включить альтернативные версии в разные разрешения для разных плотностей экрана.

от официального разработчика Android Doc

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...