Muszę zakodować układ widgetów Androida za pomocą dip / dp (w plikach Java). W czasie wykonywania, jeśli koduję
int pixel=this.getWindowManager().getDefaultDisplay().getWidth()
;
to zwraca szerokość ekranu w pikselach (px). Aby przekonwertować to na dp, kodowałem:
int dp =pixel/(int)getResources().getDisplayMetrics().density ;
Wydaje się, że nie zwraca poprawnej odpowiedzi. Zrobiłem emulator WVGA800, którego rozdzielczość ekranu wynosi 480 na 800. Kiedy uruchom emulator i pozwól kodowi wydrukować wartości pikseli i dp, w obu wypadło 320. Ten emulator ma rozdzielczość 240 dpi, której współczynnik skali wyniósłby 0,75.