Разные 9-патч-изображения для разных плотностей? - PullRequest
25 голосов
/ 30 марта 2012

У меня те же 9-патч-образы в MDPI / HDPI / xhdpi. Есть ли особая причина, по которой он не будет сохранен для самого маленького размера? Растягиваемые области автоматически масштабируются при увеличении содержимого, например, фон в виде 9-патча.

Пример фона:

MDPI: mdpi

hdpi: hdpi

xhdpi: xhdpi

Ответы [ 2 ]

32 голосов
/ 30 марта 2012

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

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

Другим примером будет строка.Если у вас есть линия со специальным эффектом, и вы создаете ее как патч из девяти для экранов с разрешением mdpi, а линия имеет высоту два пикселя.Простое повторное использование этого рисованного объекта без масштабирования на экране xhdpi сделает вашу линию высотой в два пикселя на этом экране.Но поскольку экран имеет меньшие пиксели (более высокое разрешение, тот же размер экрана), линия будет выглядеть тоньше.

Поэтому вам всегда нужно создавать 9-патч для каждого разрешения, или, как сказал @Shubhayu, выдают только девять патчей высокого разрешения и допускают, что они становятся размытыми, если система уменьшает их для других разрешений.

7 голосов
/ 30 марта 2012

Вам не нужно помещать изображения 9-патчей разных размеров во все 3 папки.Просто поместите один с самым высоким разрешением в вашу папку для рисования.Android подберет его для всех ваших плотностей.

Кроме того, четкость вашего изображения зависит от разрешения изображения.Вы увидите размытое растяжение для устройств с высокой плотностью, если вы сохраните наименьший размер (то есть с наименьшим разрешением). Это не будет заметно, если фоновое изображение будет однотонным.Вы заметите разницу, когда фон имеет несколько рисунков / повторяющихся градиентов.

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

http://www.shubhayu.com/android/9-patch-image-designers-vs-developers

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