คำถามติดแท็ก density-independent-pixel

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

20
สูตร px เป็น dp, dp ถึง px android
ฉันกำลังพยายามคำนวณจำนวนพิกเซลของพิกเซลเพื่อความหนาแน่นของพิกเซลอิสระและในทางกลับกัน สูตรนี้ใช้(px to dp): dp = (int)(px / (displayMetrics.densityDpi / 160));ไม่ได้กับอุปกรณ์ขนาดเล็กเนื่องจากถูกหารด้วยศูนย์ นี่คือสูตร dp ถึง px ของฉัน: px = (int)(dp * (displayMetrics.densityDpi / 160)); ใครช่วยชี้ให้ฉันได้บ้าง

6
setWidth (int พิกเซล) ใช้ dip หรือ px หรือไม่
setWidth (พิกเซล int) ใช้พิกเซลอิสระของอุปกรณ์หรือพิกเซลทางกายภาพเป็นหน่วยหรือไม่ ตัวอย่างเช่น setWidth (100) ตั้งค่าความกว้างของมุมมองเป็น 100 dips หรือ 100 px หรือไม่ ขอบคุณ.
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.