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;
}
601   1  

1 ответ:

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

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

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

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

Comments

    Ничего не найдено.