Я нашел это в Android документации:Преобразование из дп РХ в андроида
Преобразование Dp единиц пикселей экрана проста:
px = dp * (dpi/160)
Но я не понимаю, что dpi
есть и как оно рассчитывается. Любая помощь?
Я нашел это в Android документации:Преобразование из дп РХ в андроида
Преобразование Dp единиц пикселей экрана проста:
px = dp * (dpi/160)
Но я не понимаю, что dpi
есть и как оно рассчитывается. Любая помощь?
Пожалуйста, пройти через этот пост, я думаю, что вы получите ответ :)
What is the difference between "px", "dp", "dip" and "sp" on Android?
dpi
обозначает точки на дюйм и является физической характеристикой любого экрана.
Вы можете получить доступ к значениям x и y dpi, изучив поля и ydpi
класса DisplayMetrics
. Чтобы получить DisplayMetrics
использовать что-то вроде следующего ...
DisplayMetrics metrics = new DisplayMetrics();
getWindowManager().getDefaultDisplay().getMetrics(metrics);
float x = metrics.xdpi; // Retrieve the x dpi value
float y = metrics.ydpi; // Retrieve the y dpi value
точек на дюйм обозначает количество точек на дюйм. В android используется для обозначения плотности экрана мобильного устройства.
Android смартфоны поддерживают 4 типа точек на дюйм
Вы можете получить информацию на дисплее из DisplayMetrics структуры:
DisplayMetrics metrics = new DisplayMetrics();
getWindowManager().getDefaultDisplay().getMetrics(metrics);
Для получения дополнительной информации о размерах экрана посетите http://developer.android.com/guide/practices/screens_support.html.
Возможно, игра с калькулятором DP будет иллюстрировать, как это работает. This nifty converter demonstrates it best, на мой взгляд.
Он иллюстрирует, как размеры пикселей выглядят как разные размеры экрана между экранами разных плотностей. Например, 48px будет отображаться вдвое большим на экране с удвоенным DPI.
Существуют различные DPI контейнеры, известные Android:
Базовая линия DPI 160 (mdpi), при которой 1dp = 1px.При удвоении этого значения 320 (xhdpi), 1dp = 2px.