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);