Мне нужно закодировать макет виджетов 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.