Мне нужно закодировать макет виджетов 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 dpi, масштабный коэффициент которого будет 0,75.