Tôi cần mã hóa bố cục của các widget Android bằng cách sử dụng dip / dp (trong các tệp java). Trong thời gian chạy nếu tôi mã ,
int pixel=this.getWindowManager().getDefaultDisplay().getWidth()
;
cái này trả về chiều rộng màn hình tính bằng pixel (px). Để chuyển đổi nó thành dp, tôi đã mã hóa:
int dp =pixel/(int)getResources().getDisplayMetrics().density ;
Điều này dường như không trả lời đúng. Tôi đã tạo trình giả lập của WVGA800 có độ phân giải màn hình là 480 x 800. Khi chạy trình giả lập và để mã in các giá trị của pixel và dp, nó đã lên tới 320 ở cả hai. Trình giả lập này là 240 dpi với hệ số tỷ lệ sẽ là 0,75.