Дизайн Photoshop от px до dp

У меня есть окончательный дизайн приложения, сделанный в Photoshop, где все измеряется в PX. Теперь я понимаю, что приложения для Android используют DP для размеров шрифтов и других вещей.

Есть ли способ конвертировать PX в DP?

Solutions Collecting From Web of "Дизайн Photoshop от px до dp"

На более практичной ноте у вас есть несколько вариантов увеличения работы и верности:

  1. Ваши ресурсы масштабируются на 160 точек на дюйм, помещают их в папку res/drawable и позволяют ОС масштабировать их, чтобы смотреть прямо на устройство.

  2. Сделайте две копии своих ресурсов: один на 160 точек на дюйм в вашем res/drawable и один на 240 точек на дюйм в каталоге res/drawable-hdpi . Пусть шкала ОС для точного устройства, начиная с довольно близкого числа.

  3. Решите, что вы не хотите масштабирования и иметь необработанные пиксели, поэтому поместите свои ресурсы в каталог res/drawable-nodpi . Это означает, что на 320×480 (пиксельных) графиках может быть 2 дюйма на 3 дюйма на одном телефоне, но только на 1 1/3 дюйма на 2 дюйма на другом экране.

  4. Укажите точную стратегию масштабирования для вашей работы, используя инструмент draw9patch . Это может быть очень полезно для сохранения углов ящиков от получения «зубцов» от масштабирования и для обеспечения полноэкранной графики с различными пропорциями.

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

О, и как gotcha, укажите sp для ваших шрифтов, а не dp или pt . 10-точечным шрифтом будет шрифт 22 sp [= 10 * (160/72) или = количество точек раз 2.222]. sp units масштабируются с настройками пользователя для небольших, средних или больших шрифтов.

Из этого списка единиц измерения, поддерживаемых Android, приведено описание DP:

Плотно-независимые пиксели – абстрактный блок, основанный на физической плотности экрана. Эти единицы относятся к экрану с разрешением 160 точек на дюйм, поэтому один пиксель – один пиксель на экране с разрешением 160 точек на дюйм. Отношение dp-to-pixel будет меняться с плотностью экрана, но не обязательно в прямой пропорции. Примечание. Компилятор принимает как «dip», так и «dp», хотя «dp» более соответствует «sp».

Это означает, что «преобразование» между пикселями и DP не будет согласованным – на некоторых устройствах отношение может быть 1DP = 160 пикселей, но теоретически это может быть что угодно. Это хорошо и хорошо, когда вы устанавливаете ширину кнопки, например, 100dp (поскольку она будет отображаться динамически), но это создает проблему, когда у вас есть изображения, которые должны иметь фиксированный размер.

Прочтите эту страницу в разделе « Поддержка нескольких экранов ». В Android есть что-то, называемое классификаторами каталогов ресурсов , которые позволяют создавать размерные и графические версии ваших графических ресурсов. Например, для экранов с низкой плотностью вы можете создать меньшую версию своего изображения и поместить ее в каталог drawable-ldpi (или drawable-hdpi для экранов с высокой плотностью).


Tl; dr Вы не можете практически «конвертировать из PX в DP» (поскольку соотношение не фиксировано), но вы можете создавать несколько версий своих изображений и сообщать Android, которые будут использоваться с квалификаторами каталога ресурсов.

Пиксель – это PX, а DP или DIP – независимые от устройства пиксели. Я не думаю, что вам нужно их преобразовать. Но вы можете использовать масштабируемые 9patch-изображения, используя инструмент draw9patch из инструментов Android.

У меня такая же проблема, но теперь я получил решение.

Почему вы не используете онлайн-конвертер, чтобы узнать, какие dp или px у вас есть для разного разрешения устройства Android?

См. Эту ссылку: эта ссылка, которая помогает мне много, а также помогает вам.

Наслаждайтесь кодированием.

Это онлайн-инструменты конвертера DP / PX: http://labs.rampinteractive.co.uk/android_dp_px_calculator/