11
จะกำหนดความกว้างของหน้าจอในรูปของ dp หรือ dip at runtime ใน Android ได้อย่างไร?
ฉันต้องการโค้ดเลย์เอาต์ของวิดเจ็ต 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