У меня есть окончательный дизайн приложения, сделанный в Photoshop, где все измеряется в PX. Теперь я понимаю, что приложения для Android используют DP для размеров шрифта и других вещей.
Есть ли способ конвертировать PX в DP?
У меня есть окончательный дизайн приложения, сделанный в Photoshop, где все измеряется в PX. Теперь я понимаю, что приложения для Android используют DP для размеров шрифта и других вещей.
Есть ли способ конвертировать PX в DP?
На более практичной ноте у вас есть несколько вариантов увеличения работы и верности:
Ресурсы масштабируются для 160 точек на дюйм, помещают их в каталог res/drawable
и позволяют ОС масштабировать их, чтобы смотреть прямо на устройство.
Сделайте две копии ваших ресурсов: один на 160 точек на дюйм в вашем res/drawable
и один на 240 точек на дюйм в вашем каталоге res/drawable-hdpi
. Пусть шкала ОС для точного устройства, начиная с довольно близкого числа.
Решите, что вы не хотите масштабирования и иметь необработанные пиксели, поэтому поместите свои ресурсы в каталог res/drawable-nodpi
. Это означает, что на 320x480 (пиксельном) графике может быть 2 дюйма на 3 дюйма на одном телефоне, но только на 1 1/3 дюйма на 2 дюйма на другом экране.
Укажите точную стратегию масштабирования для вашей работы с помощью инструмента draw9patch
. Это может быть очень полезно для сохранения углов ящиков от получения "зубцов" от масштабирования и для обеспечения полноэкранной графики с различными пропорциями.
Сделайте отдельную графику для каждого устройства, о котором вы заботитесь, и оставьте обратно масштабируемую графику для остальных. Вам нужно будет обогнать фанатиков, размахивающих стилями, чтобы убедить вас не делать этого таким образом.
О, и в качестве получения укажите sp
для ваших шрифтов, а не dp
или pt
. 10-точечным шрифтом будет шрифт 22 sp [= 10 * (160/72) или = количество точек раз 2.222]. sp
масштабируются с пользовательскими настройками для небольших, средних или больших шрифтов.
Из этот список единиц измерения, поддерживаемых 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, которые должны использоваться с квалификаторы каталога ресурсов.
A пиксель - это PX, а DP или DIP - независимые от устройства пиксели. Я не думаю, что вам нужно их преобразовать. Но вы можете использовать масштабируемые 9patch-изображения, используя инструмент draw9patch
из инструментов Android.
У меня такая же проблема, но теперь я получил решение.
Почему вы не используете онлайн-конвертер, чтобы узнать, какие dp или px у вас есть для разного разрешения устройства Android?
Смотрите эту ссылку: эта ссылка, которая мне очень помогает, а также помогает вам.
Наслаждайтесь кодированием.
Это интерактивные инструменты конвертера DP/PX: http://labs.rampinteractive.co.uk/android_dp_px_calculator/
http://upworkdownload.xyz/2019/06/12/100-off-udemy-create-awesome-pattern-with-adobe-photoshop/ введите описание изображения здесь