Android: Kích thước hình nền (tính bằng Pixel) hỗ trợ tất cả thiết bị


114

Tôi đang tạo một Ứng dụng sẽ chạy trên tất cả các Thiết bị Android. Tôi muốn tạo Đồ họa xhdpi cho Ứng dụng của mình. Ứng dụng của tôi ở chế độ toàn màn hình. Tôi đang bối rối trong việc tạo đồ họa. bất kỳ ai có thể cho tôi biết kích thước tốt nhất của hình nền của tôi theo pixel.

Ví dụ:

  • xhdpi: 720x1280 px
  • hdpi: 480x800 px
  • mdpi: 320x480 px
  • ldpi: 240x320 px

Đề xuất cho tôi kích thước tốt nhất sẽ xuất hiện trên tất cả các thiết bị tốt. Bởi vì đồ họa của tôi là cốt lõi của ứng dụng của tôi.

Tôi muốn rằng mọi thiết bị đều có được hình ảnh tốt nhất mà nó muốn. Android sẽ không tham gia vào việc nén hoặc mở rộng hình ảnh.


3
Android hỗ trợ Nhiều màn hình đọc Android Tài liệu, họ cung cấp cho các tiêu chuẩn cho giao diện người dùng
RajeshVijayakumar

Sử dụng một giải pháp này tốt nhất cho tất cả cũ và mới và cho các thiết bị sắp ra mắt. stackoverflow.com/a/40255870/2489061
Umer

Câu trả lời:


199

Sau đây là các thứ nguyên tốt nhất để ứng dụng chạy trên tất cả các thiết bị. Để hiểu nhiều màn hình hỗ trợ, bạn phải đọc 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 phải là 2x HDPI
LarryBud

1
thú vị, nexus 5 là xxhdpi, nhưng kích thước màn hình của nó là 1080x1920
Roman

3
LG G3 có độ phân giải 1440 x 2560 và sử dụng xxxhdpi.
Roel

1
Đó là vấn đề / thách thức chính với Android, không có kích thước thiết lập cho hdpi, xhdpi, v.v. bởi vì mỗi nhà sản xuất có thể tạo ra một điện thoại / máy tính bảng có kích thước khác nhau, không giống như IOS chỉ có Apple làm ra nó. Xem phần trên phạm vi: developer.android.com/guide/practices/…
toidiu

Sử dụng một giải pháp này tốt nhất cho tất cả cũ và mới và cho các thiết bị sắp ra mắt. stackoverflow.com/a/40255870/2489061
Umer

63

Ma trận thiết bị 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 

(Để có cách tiếp cận tốt trừ Kích thước Thanh công cụ Từ tổng chiều cao của Màn hình Nền và sau đó là Đồ họa Thiết kế của Màn hình)

Để được trợ giúp thêm (Liên kết này bao gồm cả máy tính bảng):

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

Biểu tượng gốc của Android (Được đề xuất) Bạn có thể thay đổi màu của các biểu tượng này theo lập trình . https://design.google.com/icons/


Tại sao các chủ đề không phù hợp với các hệ số được đề xuất ở đây? developer.android.com/training/multiscreen/screendensities#java
Ben

16

Kiểm tra điều này. Hình ảnh này sẽ hiển thị cho tất cả các kích thước biểu tượng cho các kích thước màn hình khác nhau

Kích thước


4
cái này từ đâu?
Mohammed Sohail Ebrahim

từ một trong các trang web trong khi lướt web
Ketan Ramani

5

Tôi đã tìm kiếm trên internet để tìm kích thước chính xác cho các mật độ này đối với hình ảnh vuông, nhưng không thể tìm thấy bất kỳ điều gì đáng tin cậy.

Nếu đó là bất kỳ sự an ủi nào, hãy tham khảo câu trả lời của Veerababu Medisetti, tôi đã sử dụng các kích thước này cho SQUARES :)

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

Sử dụng một giải pháp này tốt nhất cho tất cả cũ và mới và cho các thiết bị sắp ra mắt. stackoverflow.com/a/40255870/2489061
Umer

4

Công cụ GIMP chính là thứ bạn cần để tạo hình ảnh cho các thiết bị có độ phân giải pixel khác nhau.

Làm theo các bước sau:

  1. Mở hình ảnh hiện có trong công cụ GIMP.
  2. Chuyển đến menu "Hình ảnh" và chọn "Tỷ lệ Hình ảnh ..."
  3. Sử dụng kích thước pixel bên dưới mà bạn cần:

    xxxhdpi: 1280x1920 px

    xxhdpi: 960x1600 px

    xhdpi: 640x960 px

    hdpi: 480x800 px

    mdpi: 320x480 px

    ldpi: 240x320 px

  4. Sau đó "Xuất" hình ảnh từ menu "Tệp".


3

Sự hiểu biết của tôi là nếu bạn sử dụng một Viewđối tượng (ví dụ như. android:windowBackground), Android sẽ tự động chia tỷ lệ hình ảnh của bạn theo đúng kích thước. Vấn đề là tỷ lệ quá nhiều có thể dẫn đến hiện tượng tạo tác (cả trong quá trình tăng và giảm tỷ lệ) và làm mờ. Do các độ phân giải và tỷ lệ khía cạnh khác nhau trên thị trường, không thể tạo ra sự phù hợp "hoàn hảo" cho mọi màn hình, nhưng bạn có thể cố gắng hết sức để đảm bảo chỉ phải thực hiện một chút tỷ lệ và do đó giảm thiểu các tác dụng phụ không mong muốn . Vì vậy, những gì tôi sẽ làm là:

  • Giữ nguyên tỷ lệ chia tỷ lệ 3: 4: 6: 8: 12: 16 giữa sáu mật độ tổng quát (ldpi, mdpi, hdpi, v.v.).
  • Bạn không nên bao gồm các phần tử xxxhdpi cho các phần tử giao diện người dùng của mình, độ phân giải này chỉ dành cho việc nâng cấp các biểu tượng trình khởi chạy (chỉ dành cho thư mục mipmap) ... Bạn không nên sử dụng bộ định lượng xxxhdpi cho các phần tử giao diện người dùng khác với biểu tượng trình khởi chạy. ... mặc dù vd. trên Samsung edge 7, cuộc gọi getDisplayMetrics().densitytrả về 4 (xxxhdpi), vì vậy có lẽ thông tin này đã lỗi thời.
  • Sau đó, xem xét các mẫu điện thoại mới trên thị trường và tìm những mẫu đại diện. Giả sử google pixel mới là một đại diện tốt của điện thoại Android: Nó có độ phân giải 1080 x 1920 ở 441 dpi và kích thước màn hình 4,4 x 2,5 inch . Sau đó, từ tài liệu dành cho nhà phát triển Android :

    • ldpi (thấp) ~ 120dpi
    • mdpi (trung bình) ~ 160dpi
    • hdpi (cao) ~ 240dpi
    • xhdpi (cực cao) ~ 320dpi
    • xxhdpi (cực cao) ~ 480dpi
    • xxxhdpi (cực kỳ cao) ~ 640dpi

    Điều này tương ứng với một xxhdpimàn hình. Từ đây, tôi có thể chia tỷ lệ 1080 x 1920 này xuống theo tỷ lệ (3: 4: 6: 8: 12) ở trên.

  • Tôi cũng có thể thừa nhận rằng lấy mẫu xuống nói chung là một cách dễ dàng để mở rộng quy mô và do đó tôi có thể muốn các bitmap hơi quá khổ được gói trong gói ứng dụng của mình (Lưu ý: tiêu thụ bộ nhớ cao hơn). Một lần nữa, giả sử rằng chiều rộng và chiều cao của màn hình pixel là xác định lại, tôi sẽ tăng tỷ lệ 1080x1920 lên thành 480/441, để hình ảnh nền có độ phân giải tối đa của tôi ở mức xấp xỉ. 1200x2100, sau đó sẽ được chia tỷ lệ theo tỷ lệ 3: 4: 6: 8: 12.
  • Hãy nhớ rằng bạn chỉ cần cung cấp các tệp có thể vẽ theo mật độ cụ thể cho các tệp bitmap (.png, .jpg hoặc .gif) và tệp Nine-Patch (.9.png). Nếu bạn sử dụng tệp XML để xác định các tài nguyên có thể vẽ được (ví dụ: hình dạng), chỉ cần đặt một bản sao vào thư mục có thể vẽ mặc định.
  • Nếu bạn phải tính toán tỷ lệ khung hình thực sự lớn hoặc kỳ lạ, hãy tạo các thư mục cụ thể cho các tỷ lệ này, ví dụ: sử dụng các cờ cho tỷ lệ này. sw, long,large Vv
  • Và không cần phải vẽ nền hai lần. Do đó, hãy thiết lập một phong cách với<item name="android:windowBackground">@null</item>
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.