Khước từ
Câu trả lời này là từ năm 2013 và đã lỗi thời nghiêm trọng. Tính đến Android 3.2, hiện có 6 nhóm mật độ màn hình. Câu trả lời này sẽ được cập nhật ngay khi tôi có thể, nhưng không có ETA. Tham khảo tài liệu chính thức cho tất cả các mật độ tại thời điểm này (mặc dù thông tin về kích thước pixel cụ thể luôn luôn khó tìm).
Đây là phiên bản tl / dr
Tạo 4 hình ảnh, một cho mỗi mật độ màn hình:
- xlund (xhdpi): 640x960
- lớn (hdpi): 480x800
- trung bình (mdpi): 320x480
- nhỏ (ldpi): 240x320
Đọc phần giới thiệu hình ảnh 9 bản vá trong Hướng dẫn dành cho nhà phát triển Android
- Thiết kế hình ảnh có các khu vực có thể được kéo dài một cách an toàn mà không ảnh hưởng đến kết quả cuối cùng
Với điều này, Android sẽ chọn tệp thích hợp cho mật độ hình ảnh của thiết bị, sau đó nó sẽ kéo dài hình ảnh theo tiêu chuẩn 9 miếng.
cuối tl; dr. Toàn bài trước
Tôi đang trả lời về khía cạnh liên quan đến thiết kế của câu hỏi. Tôi không phải là nhà phát triển, vì vậy tôi sẽ không thể cung cấp mã để triển khai nhiều giải pháp được cung cấp. Than ôi, ý định của tôi là giúp các nhà thiết kế bị mất như tôi khi tôi giúp phát triển Ứng dụng Android đầu tiên của mình.
Lắp tất cả các kích cỡ
Với Android, các công ty có thể phát triển điện thoại di động và bảng có kích thước gần như bất kỳ, với hầu hết mọi độ phân giải họ muốn. Do đó, không có "kích thước hình ảnh phù hợp" cho màn hình giật gân, vì không có độ phân giải màn hình cố định. Điều đó đặt ra một vấn đề cho những người muốn thực hiện một màn hình giật gân.
Người dùng của bạn thực sự muốn xem một màn hình giật gân?
(Một lưu ý nữa, màn hình giật gân có phần không được khuyến khích trong số những người sử dụng được. Người ta cho rằng người dùng đã biết ứng dụng nào anh ta gõ vào và việc gắn nhãn hiệu của bạn với màn hình giật gân là không cần thiết, vì nó chỉ làm gián đoạn trải nghiệm của người dùng một "quảng cáo". Tuy nhiên, nó nên được sử dụng trong các ứng dụng yêu cầu tải đáng kể khi khởi tạo (5s +), bao gồm các trò chơi và như vậy, để người dùng không bị băn khoăn liệu ứng dụng có bị lỗi hay không)
Mật độ màn hình; 4 lớp
Vì vậy, với rất nhiều độ phân giải màn hình khác nhau trên điện thoại trên thị trường, Google đã triển khai một số giải pháp thay thế và tiện lợi có thể giúp ích. Điều đầu tiên bạn phải biết là Android tách TẤT CẢ màn hình thành 4 mật độ màn hình riêng biệt:
- Mật độ thấp (ldpi ~ 120dpi)
- Mật độ trung bình (mdpi ~ 160dpi)
- Mật độ cao (hdpi ~ 240dpi)
- Mật độ cực cao (xhdpi ~ 320dpi) (Các giá trị dpi này là xấp xỉ, vì các thiết bị được chế tạo tùy chỉnh sẽ có các giá trị dpi khác nhau)
Điều bạn (nếu bạn là nhà thiết kế) cần biết từ đây là về cơ bản Android sẽ chọn từ 4 hình ảnh để hiển thị, tùy thuộc vào thiết bị. Vì vậy, về cơ bản, bạn phải thiết kế 4 hình ảnh khác nhau (mặc dù có thể phát triển nhiều hơn cho các định dạng khác nhau như màn hình rộng, chế độ dọc / ngang, v.v.).
Với ý nghĩ đó, hãy biết điều này: trừ khi bạn thiết kế một màn hình cho mọi độ phân giải được sử dụng trong Android, hình ảnh của bạn sẽ kéo dài để phù hợp với kích thước màn hình. Và trừ khi hình ảnh của bạn về cơ bản là độ dốc hoặc mờ, bạn sẽ nhận được một số biến dạng không mong muốn với việc kéo dài. Vì vậy, về cơ bản bạn có hai tùy chọn: tạo một hình ảnh cho mỗi kết hợp kích thước / mật độ màn hình hoặc tạo bốn hình ảnh 9 miếng vá.
Giải pháp khó nhất là thiết kế một màn hình giật gân khác nhau cho mỗi độ phân giải. Bạn có thể bắt đầu bằng cách làm theo các độ phân giải trong bảng ở cuối trang này (có nhiều hơn. Ví dụ: 960 x 720 không được liệt kê ở đó). Và giả sử bạn có một số chi tiết nhỏ trong hình ảnh, chẳng hạn như văn bản nhỏ, bạn phải thiết kế nhiều hơn một màn hình cho mỗi độ phân giải. Ví dụ: hình ảnh 480x800 được hiển thị ở màn hình trung bình có thể trông ổn, nhưng trên màn hình nhỏ hơn (với mật độ / dpi cao hơn), logo có thể trở nên quá nhỏ hoặc một số văn bản có thể không đọc được.
Hình ảnh 9 miếng
Giải pháp khác là tạo một hình ảnh 9 miếng . Về cơ bản, nó là đường viền trong suốt 1 pixel xung quanh hình ảnh của bạn và bằng cách vẽ các pixel màu đen ở khu vực trên cùng và bên trái của đường viền này, bạn có thể xác định phần nào của hình ảnh sẽ được phép kéo dài. Tôi sẽ không đi vào chi tiết về cách hoạt động của hình ảnh 9 miếng, nhưng nói ngắn gọn, các pixel thẳng hàng với các điểm đánh dấu ở khu vực trên cùng và bên trái là các pixel sẽ được lặp lại để kéo dài hình ảnh.
Một vài quy tắc nền tảng
- Bạn có thể tạo những hình ảnh này trong photoshop (hoặc bất kỳ phần mềm chỉnh sửa hình ảnh nào có thể tạo chính xác các png trong suốt).
- Đường viền 1 pixel phải là FULL TRANSPARENT.
- Đường viền trong suốt 1 pixel phải ở xung quanh hình ảnh của bạn, không chỉ trên cùng và bên trái.
- bạn chỉ có thể vẽ các pixel màu đen (# 000000) trong khu vực này.
- Đường viền trên và bên trái (xác định độ giãn của hình ảnh) chỉ có thể có một dấu chấm (1px x 1px), hai dấu chấm (cả 1px x 1px) hoặc ONE dòng liên tục (chiều rộng x 1px hoặc 1px x height).
- Nếu bạn chọn sử dụng 2 dấu chấm, hình ảnh sẽ được mở rộng theo tỷ lệ (vì vậy mỗi dấu chấm sẽ lần lượt mở rộng cho đến khi đạt được chiều rộng / chiều cao cuối cùng)
- Đường viền 1px phải được thêm vào kích thước tệp cơ sở dự định. Vì vậy, một hình ảnh 9 miếng 100x100 phải thực sự có 102x102 (100x100 + 1px ở trên, dưới, trái và phải)
- Hình ảnh 9 bản vá phải kết thúc bằng * .9.png
Vì vậy, bạn có thể đặt 1 chấm ở hai bên logo của mình (ở viền trên cùng) và 1 chấm ở trên và dưới nó (ở viền bên trái), và các hàng và cột được đánh dấu này sẽ là các pixel duy nhất để kéo dài.
Thí dụ
Đây là hình ảnh 9 miếng, 102x102px (kích thước cuối cùng 100x100, cho mục đích ứng dụng):
Đây là mức phóng to 200% của cùng một hình ảnh:
Lưu ý các dấu 1px ở trên cùng và bên trái cho biết hàng / cột nào sẽ mở rộng.
Đây là hình ảnh này trông như thế nào trong 100x100 bên trong ứng dụng:
Và đây là những gì nó muốn nếu được mở rộng lên 460x140:
Một điều cuối cùng cần xem xét. Những hình ảnh này có thể trông ổn trên màn hình màn hình của bạn và trên hầu hết các thiết bị di động, nhưng nếu thiết bị có mật độ hình ảnh rất cao (dpi), hình ảnh sẽ trông quá nhỏ. Có lẽ vẫn còn rõ ràng, nhưng trên một máy tính bảng có độ phân giải 1920x1200, hình ảnh sẽ xuất hiện dưới dạng một hình vuông rất nhỏ ở giữa. Vậy giải pháp là gì? Thiết kế 4 hình ảnh launcher 9 miếng khác nhau, mỗi hình cho một bộ mật độ khác nhau. Để đảm bảo rằng không xảy ra hiện tượng thu hẹp, bạn nên thiết kế ở độ phân giải chung thấp nhất cho từng loại mật độ. Thu hẹp là không mong muốn ở đây vì 9 bản vá chỉ chiếm phần kéo dài, do đó, trong một quy trình thu nhỏ văn bản nhỏ và các yếu tố khác có thể mất tính dễ đọc.
Dưới đây là danh sách các độ phân giải nhỏ nhất, phổ biến nhất cho từng loại mật độ:
- xlund (xhdpi): 640x960
- lớn (hdpi): 480x800
- trung bình (mdpi): 320x480
- nhỏ (ldpi): 240x320
Vì vậy, thiết kế bốn màn hình giật gân ở các độ phân giải ở trên, mở rộng hình ảnh, đặt đường viền trong suốt 1px xung quanh khung vẽ và đánh dấu các hàng / cột nào sẽ có thể kéo dài. Hãy nhớ rằng những hình ảnh này sẽ được sử dụng cho thiết bị BẤT K in trong danh mục mật độ, vì vậy hình ảnh ldpi của bạn (240 x 320) có thể được kéo dài thành 1024x600 trên một máy tính bảng lớn hơn với mật độ hình ảnh nhỏ (~ 120 dpi). Vì vậy, 9-patch là giải pháp tốt nhất cho việc kéo dài, miễn là bạn không muốn có một bức ảnh hoặc đồ họa phức tạp cho màn hình giật gân (hãy ghi nhớ những hạn chế này khi bạn tạo thiết kế).
Một lần nữa, cách duy nhất để kéo dài này không xảy ra là thiết kế một màn hình cho mỗi độ phân giải (hoặc một màn hình cho mỗi kết hợp mật độ phân giải, nếu bạn muốn tránh hình ảnh trở nên quá nhỏ / lớn trên các thiết bị có mật độ cao / thấp) hoặc nói hình ảnh không bị giãn và có màu nền xuất hiện ở bất cứ nơi nào có thể kéo dài (cũng nên nhớ rằng một màu cụ thể được hiển thị bởi công cụ Android có thể sẽ trông khác với cùng màu được hiển thị bởi photoshop, vì cấu hình màu).
Tôi hy vọng điều này có ý nghĩa. Chúc may mắn!