Android конвертировать Px в Dp (соотношение сторон видео)
Возможный дубликат:
преобразование пикселей в дп в Android
Я пытаюсь конвертировать пиксели в дп. Какая формула?
Позволяет конвертировать 640 и 480 в дп. Документы говорят это
Преобразование единиц 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;
Затем логическая плотность будет содержать коэффициент, на который нужно умножить dp, чтобы получить физические размеры в пикселях для экрана устройства.
int px = (int) Math.ceil(dp * logicalDensity);