Android Convert Px to 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);
Comments