2013-02-13 4 views
1

Это основной вопрос. Может кто-нибудь объяснить формулу преобразования, используемую в андроиде:Pixel to dp conversion android

px = dp * (dpi/160).

Я видел несколько ссылок, но это ничего не объясняет.

+0

только для того, чтобы быть ясным. Я знаю, что означает каждый из этих терминов, и я уже упоминал страницу android dev. Что я хочу знать, так это то, как они дошли до него. – Raghav

+0

120 (mdpi) соответствует оригинальным телефонам Android, см. Мой обновленный ответ. – hwrdprkns

ответ

0

Посмотрите на эту ссылку: http://developer.android.com/reference/android/util/DisplayMetrics.html#density

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

Также приведены некоторые краткие ссылочные номера по плотности относительно DPI.

низкая плотность (LDPI): 120 DPI;
Средняя плотность (MDPI): 160 DPI;
высокая плотность (HDPI): 240 DPI;
сверхвысокая плотность (XHDPI): 320 точек на дюйм

From Dianne Hackborn:

Чтобы удалить вычисления размера/плотности от картины, рамки для Android работает везде, где это возможно с точки зрения "ДП" единицы, которые соответствуют . В экранах средней плотности (mdpi), которые соответствуют оригинальным телефонам Android, Физические пиксели: идентичны dp; размеры устройств составляют 320x480 либо в масштабе . Более поздний телефон может иметь физико-пиксельные размеры 480x800, но быть устройством с высокой плотностью. Коэффициент пересчета от hdpi до mdpi в этом случае равен 1,5, поэтому для целей разработчика устройство составляет 320x533 в формате dp.

0

dpi = точки на дюйм. Его количество пикселей в дюйме. Пиксели являются фактическими физическими элементами аппаратного обеспечения экрана. DP - это виртуальные пиксельные пиксельные пиксели, используемые в качестве внутреннего измерения андроидом. Количество пикселей на dp зависит от устройства. 1dp = 1/160th дюйма. Эта формула используется для преобразования dps в пиксели экрана.