Как определить разрешение экрана в «DP»?

На данный момент я работаю над приложением, основанным на Galaxy S. Я знаю, что Galaxy S имеет ширину 480 пикселей и высоту 800 пикселей, но сколько стоит DP?

Позволяет сказать, если я хочу иметь два макета рядом, я буду устанавливать их в 240 пикселей. Но как узнать, какое значение я должен использовать в DP-модуле?

Solutions Collecting From Web of "Как определить разрешение экрана в «DP»?"

Преобразование dip-единиц в пиксели экрана просто: пиксели = провалы * (плотность / 160). Например, на экране с разрешением 240 точек на дюйм 1 dip будет равен 1,5 физическим пикселям. Использование dip-модулей для определения пользовательского интерфейса вашего приложения настоятельно рекомендуется, чтобы обеспечить правильное отображение вашего пользовательского интерфейса на разных экранах.

Найдено: http://developer.android.com/guide/practices/screens_support.html

[Править] Я просто должен был использовать это. Использование DisplayMetrics.density возвращает только 0,75, 1 и 1,5. Вместо этого используйте DisplayMetrics.densityDpi или измените математику на pixels = dips * DisplayMetrics.density

То, что я узнал, заключается в том, что DP вообще не является разрешением, речь идет о размере экрана, поскольку он основан на базовой линии 160dpi. ScreenSizeInInches способом расчета будет: ScreenSizeInInches * 160.

В твоем случае:

Ширина в дюймах = 480px/(240px/inch) = 2 inches Высота в дюймах = 800px/(240px/inch) = 10/3 inches

Проверьте: sqrt(sqr(2) + sqr(10/3)) ~ = 4 inches размер галактики S.

Таким образом, размер в dp равен (2 * 160) x (10/3 * 160) = 320dp x 533.3dp