Мне нужно кодировать макет виджетов Android с помощью DIP / DP (в файлах Java). Во время выполнения , если я код,
int pixel=this.getWindowManager().getDefaultDisplay().getWidth()
;
это возвращает ширину экрана в пикселях (px). Чтобы преобразовать это в dp, я закодировал:
int dp =pixel/(int)getResources().getDisplayMetrics().density ;
это, кажется, не возвращает правильный ответ. Я сделал эмулятор WVGA800 с разрешением экрана 480 на 800. Когда запустил эмулятор и позволил коду напечатать значения pixel и dp, он достиг 320 в обоих. Этот эмулятор имеет 240 точек на дюйм, масштабный коэффициент которого будет 0,75.