Как определить ширину экрана в терминах dp или dip во время выполнения в Android?

Мне нужно закодировать макет виджетов Android, используя dip / dp (в файлах java). Во время выполнения, если я кодирую,

int pixel = this.getWindowManager (). GetDefaultDisplay (). GetWidth () ;

это возвращает ширину экрана в пикселях (px). Чтобы преобразовать это в dp, я закодировал:

int dp = pixel / (int) getResources (). GetDisplayMetrics (). Density;

Кажется, это не возвращает правильный ответ.Я сделал эмулятор WVGA800 с разрешением экрана 480 на 800. Когда запускал эмулятор и позволял коду печатать значения пикселей и dp, он достигал 320 в обоих. Этот эмулятор имеет разрешение 240 точек на дюйм, коэффициент масштабирования - 0,75.

186
задан Luke Girvin 8 September 2011 в 00:20
поделиться