Android конвертировать Px в Dp (соотношение сторон видео) [дубликат]

Возможные Дубликаты:
преобразование пикселей в dp в android

Я пытаюсь преобразовать пиксели в DP. Какова формула?

позволяет конвертировать 640 и 480 в dp. Врачи говорят это

преобразование единиц dp в пиксели экрана просто: px = dp * (dpi / 160)

но я не думаю, что это то, что мне нужно (и я не знаю, как это использовать). Наверное, я просто ... нужен форум. У меня код готов:

DisplayMetrics metrics = new DisplayMetrics();
    getWindowManager().getDefaultDisplay().getMetrics(metrics);

    switch(metrics.densityDpi)
    {
         case DisplayMetrics.DENSITY_LOW:
         int sixForty = ?
         int fourEighty = ?
         break;

         case DisplayMetrics.DENSITY_MEDIUM:
         int sixForty = ?
         int fourEighty = ?
         break;

         case DisplayMetrics.DENSITY_HIGH:
         int sixForty = ?
         int fourEighty = ?
         break;
    }

1 ответов


вместо того, чтобы пытаться вывести коэффициент преобразования dp из классификации плотности экрана, вы можете просто запросить его напрямую:

getWindowManager().getDefaultDisplay().getMetrics(metrics);
float logicalDensity = metrics.density;

logicalDensity будет содержать коэффициент, который вам нужно умножить dp, чтобы получить физические размеры пикселей для экрана устройства.

int px = (int) Math.ceil(dp * logicalDensity);