Android: ขนาดภาพพื้นหลัง (เป็นพิกเซล) ซึ่งรองรับอุปกรณ์ทั้งหมด


114

ฉันกำลังสร้างแอปพลิเคชันที่จะทำงานบนอุปกรณ์ Android ทั้งหมด ฉันต้องการสร้างกราฟิก xhdpi สำหรับแอปของฉัน แอพของฉันเต็มหน้าจอ ฉันสับสนในการสร้างกราฟิก ใครช่วยบอกขนาดที่ดีที่สุดของภาพพื้นหลังเป็นพิกเซลได้ไหม

ตัวอย่างเช่น:

  • xhdpi: 720x1280 พิกเซล
  • hdpi: 480x800 พิกเซล
  • mdpi: 320x480 พิกเซล
  • ldpi: 240x320 พิกเซล

แนะนำขนาดที่ดีที่สุดที่จะปรากฏในทุกอุปกรณ์ที่ดี เพราะกราฟิกของฉันคือหัวใจหลักของแอป

ฉันต้องการให้อุปกรณ์ทุกเครื่องได้ภาพที่ดีที่สุดตามที่ต้องการ Android จะไม่เกี่ยวข้องกับการบีบอัดหรือขยายภาพ


3
อ่านการสนับสนุน Android หลายหน้าจอของเอกสาร Android ซึ่งเป็นมาตรฐานสำหรับส่วนต่อประสานผู้ใช้
RajeshVijayakumar

ใช้โซลูชันเดียวนี้ดีที่สุดสำหรับอุปกรณ์เก่าและใหม่และสำหรับอุปกรณ์ที่กำลังจะมาถึง stackoverflow.com/a/40255870/2489061
Umer

คำตอบ:


200

ต่อไปนี้เป็นขนาดที่ดีที่สุดสำหรับแอปที่จะทำงานในอุปกรณ์ทั้งหมด หากต้องการทำความเข้าใจหน้าจอที่รองรับหลายหน้าจอคุณต้องอ่าน http://developer.android.com/guide/practices/screens_support.html

xxxhdpi: 1280x1920 px
xxhdpi: 960x1600 px
xhdpi: 640x960 px
hdpi: 480x800 px
mdpi: 320x480 px
ldpi: 240x320 px

10
XX ควรเป็น 2x HDPI
LarryBud

1
น่าสนใจ nexus 5 คือ xxhdpi แต่มีขนาดหน้าจอ 1080x1920
Roman

3
LG G3 มีความละเอียด 1440 x 2560 และใช้ xxxhdpi
Roel

1
นั่นคือปัญหาหลัก / ความท้าทายของ Android ไม่มีการกำหนดขนาดสำหรับ hdpi, xhdpi และอื่น ๆ เนื่องจากการผลิตแต่ละรายสามารถสร้างโทรศัพท์ / แท็บเล็ตที่มีขนาดแตกต่างกันซึ่งแตกต่างจาก IOS ที่มีเพียงแอปเปิ้ลเท่านั้นที่ทำ ดูที่ส่วนของ range: developer.android.com/guide/practices/…
toidiu

ใช้โซลูชันเดียวนี้ดีที่สุดสำหรับอุปกรณ์เก่าและใหม่และสำหรับอุปกรณ์ที่กำลังจะมาถึง stackoverflow.com/a/40255870/2489061
Umer

63

เมทริกซ์อุปกรณ์ Android

                            ldpi     mdpi     hdpi    xhdpi    xxhdpi      xxxhdpi
Launcher And Home           36*36    48*48   72*72    96*96    144*144     192*192
Toolbar And Tab             24*24    32*32   48*48    64*64    96*96       128*128
Notification                18*18    24*24   36*36    48*48    72*72       96*96 
Background                 240*320  320*480 480*800  768*1280  1080 *1920  1440*2560 

(เพื่อแนวทางที่ดีให้ลบขนาดแถบเครื่องมือจากความสูงทั้งหมดของหน้าจอพื้นหลังแล้วออกแบบกราฟิกของหน้าจอ)

สำหรับความช่วยเหลือเพิ่มเติม (ลิงก์นี้รวมถึงแท็บเล็ตด้วย):

https://design.google.com/devices/

Android ไอคอนพื้นเมือง (แนะนำ) คุณสามารถเปลี่ยนสีของไอคอนเหล่านี้โปรแกรม https://design.google.com/icons/


เหตุใดจึงไม่สอดคล้องกับตัวคูณที่แนะนำที่นี่ developer.android.com/training/multiscreen/screendensities#java
Ben


5

ฉันมองไปทั่วอินเทอร์เน็ตเพื่อหาขนาดที่ถูกต้องสำหรับความหนาแน่นเหล่านี้สำหรับภาพสี่เหลี่ยมจัตุรัส แต่ไม่พบสิ่งใดที่เชื่อถือได้

หากเป็นการปลอบใจใด ๆ การอ้างถึงคำตอบของ Veerababu Medisettiฉันใช้มิติข้อมูลเหล่านี้สำหรับSQUARES :)

xxxhdpi: 1280x1280 px
xxhdpi: 960x960 px
xhdpi: 640x640 px
hdpi: 480x480 px
mdpi: 320x320 px
ldpi: 240x240 px

ใช้โซลูชันเดียวนี้ดีที่สุดสำหรับอุปกรณ์เก่าและใหม่และสำหรับอุปกรณ์ที่กำลังจะมาถึง stackoverflow.com/a/40255870/2489061
Umer

4

เครื่องมือ GIMPคือสิ่งที่คุณต้องการในการสร้างภาพสำหรับอุปกรณ์ความละเอียดพิกเซลต่างๆ

ทำตามขั้นตอนเหล่านี้:

  1. เปิดภาพที่มีอยู่ในเครื่องมือ GIMP
  2. ไปที่เมนู "Image" และเลือก "Scale Image ... "
  3. ใช้มิติพิกเซลด้านล่างที่คุณต้องการ:

    xxxhdpi: 1280x1920 พิกเซล

    xxhdpi: 960x1600 พิกเซล

    xhdpi: 640x960 พิกเซล

    hdpi: 480x800 พิกเซล

    mdpi: 320x480 พิกเซล

    ldpi: 240x320 พิกเซล

  4. จากนั้น "ส่งออก" ภาพจากเมนู "ไฟล์"


3

ความเข้าใจของฉันคือถ้าคุณใช้Viewวัตถุ (ตามที่ควรจะเป็นเช่นandroid:windowBackground) Android จะปรับขนาดภาพของคุณให้มีขนาดที่ถูกต้องโดยอัตโนมัติ ปัญหาคือการปรับขนาดมากเกินไปอาจส่งผลให้สิ่งประดิษฐ์ (ทั้งในระหว่างการปรับขนาดขึ้นและลง) และการเบลอ เนื่องจากความละเอียดและอัตราส่วนต่างๆในตลาดจึงเป็นไปไม่ได้ที่จะสร้าง "ที่สมบูรณ์แบบ" สำหรับทุกหน้าจอ แต่คุณสามารถทำให้ดีที่สุดเพื่อให้แน่ใจว่าจะต้องทำการปรับสเกลเพียงเล็กน้อยเท่านั้นและจะช่วยลดผลข้างเคียงที่ไม่ต้องการได้ . ดังนั้นสิ่งที่ฉันจะทำคือ:

  • คงไว้ที่อัตราส่วนมาตราส่วน 3: 4: 6: 8: 12: 16 ระหว่างความหนาแน่นทั่วไป 6 ประการ (ldpi, mdpi, hdpi ฯลฯ )
  • คุณไม่ควรรวมองค์ประกอบ xxxhdpi สำหรับองค์ประกอบ UI ของคุณความละเอียดนี้มีไว้สำหรับการเพิ่มขนาดไอคอนตัวเรียกใช้งานเท่านั้น (ดังนั้นโฟลเดอร์ mipmap เท่านั้น) ... คุณไม่ควรใช้คุณสมบัติ xxxhdpi สำหรับองค์ประกอบ UI อื่นที่ไม่ใช่ไอคอนตัวเรียกใช้งาน ... แม้ว่าเช่น. ในการโทรของ Samsung edge 7 getDisplayMetrics().densityจะส่งกลับ 4 (xxxhdpi) ดังนั้นข้อมูลนี้อาจล้าสมัย
  • จากนั้นดูโทรศัพท์รุ่นใหม่ในตลาดและค้นหารุ่นที่เป็นตัวแทน Assumming ของ Google พิกเซลใหม่เป็นตัวแทนที่ดีของโทรศัพท์ Android: มันมีความละเอียด 1080 x 1920 ที่ 441 dpi และหน้าจอขนาด4.4 x 2.5 นิ้ว จากนั้นจากเอกสารสำหรับนักพัฒนา Android :

    • ldpi (ต่ำ) ~ 120dpi
    • mdpi (ปานกลาง) ~ 160dpi
    • hdpi (สูง) ~ 240dpi
    • xhdpi (สูงพิเศษ) ~ 320dpi
    • xxhdpi (สูงพิเศษ) ~ 480dpi
    • xxxhdpi (พิเศษ - พิเศษ - สูงพิเศษ) ~ 640dpi

    สิ่งนี้สอดคล้องกับxxhdpiหน้าจอ จากตรงนี้ฉันสามารถปรับขนาด 1080 x 1920 เหล่านี้ลงโดยอัตราส่วน (3: 4: 6: 8: 12) ด้านบน

  • ฉันยังสามารถรับทราบได้ว่าการสุ่มตัวอย่างโดยทั่วไปเป็นวิธีที่ง่ายในการปรับขนาดดังนั้นฉันอาจต้องการบิตแมปขนาดใหญ่เล็กน้อยที่รวมอยู่ใน apk ของฉัน (หมายเหตุ: การใช้หน่วยความจำที่สูงขึ้น) เมื่อสมมติว่าความกว้างและความสูงของหน้าจอพิกเซลซ้ำกันฉันจะปรับขนาด 1080x1920 ขึ้นเป็น 480/441 โดยปล่อยให้ภาพพื้นหลังมีความละเอียดสูงสุดโดยประมาณ 1200x2100 ซึ่งควรจะปรับขนาดโดย 3: 4: 6: 8: 12
  • โปรดจำไว้ว่าคุณต้องจัดเตรียม drawables เฉพาะความหนาแน่นสำหรับไฟล์บิตแมป (.png, .jpg หรือ. gif) และไฟล์ Nine-Patch (.9.png) หากคุณใช้ไฟล์ XML เพื่อกำหนดรีซอร์สที่วาดได้ (เช่นรูปร่าง) ให้ใส่สำเนาหนึ่งชุดในไดเร็กทอรีที่วาดได้เริ่มต้น
  • หากคุณต้องรองรับอัตราส่วนขนาดใหญ่หรือคี่ให้สร้างโฟลเดอร์เฉพาะสำหรับสิ่งเหล่านี้เช่นกันโดยใช้แฟล็กสำหรับสิ่งนี้เช่น sw, long, largeฯลฯ
  • และไม่จำเป็นต้องวาดพื้นหลังซ้ำสอง จึงกำหนดลักษณะด้วย<item name="android:windowBackground">@null</item>
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.