Подтвердить что ты не робот

Различные 9-патч-изображения для разных плотностей?

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

Пример фона:

MDPI: mdpi

hdpi: hdpi

xhdpi: xhdpi

4b9b3361

Ответ 1

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

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

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

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

Ответ 2

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

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

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

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