Android конвертирует Px в Dp (соотношение сторон видео)
Возможный дубликат:
конвертирование пикселей в dp в андроид
Я пытаюсь преобразовать пиксели в 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);