Tổng quan về khả năng tương thích với màn hình

Android chạy trên nhiều thiết bị có nhiều kích thước màn hình và mật độ pixel. Hệ thống thực hiện việc điều chỉnh theo tỷ lệ và đổi kích thước cơ bản để điều chỉnh giao diện người dùng của bạn cho phù hợp với nhiều loại màn hình, nhưng có một số cách giúp giao diện người dùng thích ứng tốt hơn với từng loại màn hình.

Hình 1. Android chạy trên nhiều thiết bị có màn hình và mật độ pixel khác nhau.

Trang này cung cấp thông tin tổng quan về các tính năng có trên Android để giúp ứng dụng của bạn thích ứng theo. Để biết hướng dẫn cụ thể hơn về cách tạo ứng dụng cho các biến thể màn hình khác nhau, hãy xem tài liệu sau:

Kích thước màn hình

Kích thước màn hình là không gian hiển thị trên giao diện người dùng của ứng dụng. Kích thước màn hình mà ứng dụng của bạn nhận dạng được không phải là kích thước thực tế của màn hình thiết bị. Ứng dụng phải tính đến hướng màn hình, trang trí hệ thống (chẳng hạn như thanh điều hướng) và các thay đổi về cấu hình cửa sổ, chẳng hạn như khi người dùng bật chế độ nhiều cửa sổ.

Bố cục linh hoạt

Theo mặc định, Android sẽ đổi kích thước bố cục ứng dụng cho vừa với màn hình hiện tại. Để giúp bố cục thay đổi kích thước phù hợp với các biến thể nhỏ về kích thước màn hình, hãy triển khai bố cục một cách linh hoạt. Đừng mã hoá cứng vị trí và kích thước của các thành phần trên giao diện người dùng. Thay vào đó, hãy để kích thước khung hiển thị kéo dài và chỉ định vị trí khung hiển thị tương ứng với khung hiển thị mẹ hoặc các khung hiển thị đồng cấp khác để thứ tự dự kiến và kích thước tương đối của bạn vẫn giữ nguyên khi bố cục tăng trưởng.

Để tìm hiểu thêm về bố cục linh hoạt, hãy xem bài viết Thiết kế đáp ứng.

Bố cục thay thế

Bố cục linh hoạt rất quan trọng, nhưng bạn cũng cần thiết kế nhiều bố cục để tối ưu hoá trải nghiệm người dùng cho không gian hiện có trên nhiều thiết bị. Android cho phép bạn cung cấp các tệp bố cục thay thế mà hệ thống áp dụng trong thời gian chạy dựa trên kích thước màn hình của thiết bị hiện tại.

Hình 2. Cùng một ứng dụng dùng một bố cục khác cho nhiều kích thước màn hình.

Để tìm hiểu cách tạo bố cục thay thế, hãy xem phần Thiết kế thích ứng.

Hình ảnh có thể co giãn

Vì bố cục cần phải kéo giãn để vừa với màn hình hiện tại, vì vậy, hãy triển khai bitmap mà bạn đính kèm vào bất kỳ khung hiển thị bố cục nào. Tuy nhiên, việc kéo dài một bitmap thông thường theo các hướng tuỳ ý có thể dẫn đến các cấu phần phần mềm điều chỉnh theo tỷ lệ lạ và hình ảnh bị lệch.

Để giải quyết vấn đề này, Android hỗ trợ các bitmap 9-patch, trong đó bạn chỉ định các vùng pixel nhỏ có thể co giãn, trong khi phần còn lại của hình ảnh vẫn không được điều chỉnh theo tỷ lệ.

Để tìm hiểu thêm về các bitmap 9-patch, hãy xem phần Đối tượng có thể vẽ NinePatch.

Mật độ pixel

Mật độ pixel là số pixel trong một vùng vật lý của màn hình. Số này được gọi là dpi (số điểm trên mỗi inch). Số liệu này khác với độ phân giải màn hình (tổng số pixel trên màn hình).

Hình 3. Hình đại diện phóng đại của 2 thiết bị có cùng kích thước nhưng có mật độ điểm ảnh khác nhau.

Độ độc lập về mật độ

Ứng dụng của bạn đạt được "độ độc lập về mật độ" khi giữ nguyên kích thước thực (theo quan điểm của người dùng) của thiết kế giao diện người dùng khi hiển thị trên các màn hình có mật độ pixel khác nhau, như minh hoạ trong hình 3. Việc duy trì sự độc lập về mật độ là rất quan trọng vì nếu không có sự độc lập này, một phần tử trên giao diện người dùng, chẳng hạn như nút, có thể hiển thị lớn hơn trên màn hình có mật độ mật độ thấp và nhỏ hơn trên màn hình có mật độ mật độ cao.

Android giúp bạn đạt được sự độc lập về mật độ bằng cách cung cấp pixel không phụ thuộc vào mật độ (dp hoặc dip) dưới dạng đơn vị đo lường mà bạn sử dụng thay vì pixel (px).

Để tìm hiểu thêm về các pixel không phụ thuộc vào mật độ, hãy xem bài viết Sử dụng pixel không phụ thuộc vào mật độ.

Bitmap thay thế

Để hình ảnh của bạn trông đẹp nhất trên tất cả màn hình, hãy cung cấp các bitmap thay thế để khớp với mật độ của từng màn hình. Nếu ứng dụng của bạn chỉ cung cấp bitmap cho màn hình có mật độ điểm ảnh thấp hơn, thì Android sẽ tăng tỷ lệ bitmap khi ở màn hình có mật độ điểm ảnh cao để hình ảnh chiếm cùng một không gian thực trên màn hình. Điều này có thể tạo ra các cấu phần phần mềm theo tỷ lệ hiển thị trong bitmap. Vì vậy, ứng dụng của bạn phải bao gồm các bitmap thay thế có độ phân giải cao hơn.

Để tìm hiểu cách cung cấp bitmap thay thế, hãy xem phần Cung cấp bitmap thay thế.

Đồ hoạ vectơ

Đối với các loại hình ảnh đơn giản, như biểu tượng, bạn có thể tránh tạo các hình ảnh riêng biệt cho từng mật độ bằng cách sử dụng đồ hoạ vectơ. Vì đồ hoạ vectơ xác định hình minh hoạ bằng đường dẫn đường hình học thay vì pixel, nên bạn có thể vẽ hình minh hoạ ở mọi kích thước mà không cần điều chỉnh tỷ lệ cấu phần phần mềm.

Để tìm hiểu thêm về cách sử dụng đồ hoạ vectơ, hãy xem phần Ưu tiên đồ hoạ vectơ.

Wear OS, TV, Ô tô và ChromeOS

Các đề xuất trước áp dụng cho mọi kiểu dáng Android, nhưng nếu muốn tạo ứng dụng cho thiết bị Wear OS, Android TV, Android Auto, Android Automotive OS hoặc ChromeOS, thì bạn cần thực hiện nhiều thao tác hơn.

Mỗi loại thiết bị trong số này có mô hình tương tác người dùng riêng mà ứng dụng của bạn phải hỗ trợ. Trong một số trường hợp, chẳng hạn như đối với Wear OS, bạn cần phải xem xét lại trải nghiệm người dùng của ứng dụng và xây dựng một ứng dụng dành riêng cho thiết bị đó. Mặt khác, để hỗ trợ các thiết bị ChromeOS (chẳng hạn như Google Pixelbook), bạn có thể chỉ cần sửa đổi một chút đối với ứng dụng hiện có để hỗ trợ các thao tác tương tác với bàn phím hoặc chuột và màn hình lớn hơn.

Để hỗ trợ các thiết bị này, hãy tham khảo tài liệu sau:

Thiết bị có thể gập lại

Thiết bị có thể gập lại thường có nhiều màn hình, với các màn hình khác nhau (hoặc tổ hợp các màn hình) sẽ hoạt động theo các trạng thái gập của thiết bị. Hãy làm theo các nguyên tắc trong tài liệu này để ứng dụng của bạn thích ứng với những thay đổi về cấu hình đó. Tuy nhiên, một số cấu hình có thể có tỷ lệ khung hình bất thường. Vì vậy, hãy kiểm thử cách ứng dụng của bạn hoạt động trên nhiều thiết bị.

Hình 4. Gập và mở.

Thông thường, một ứng dụng hoạt động tốt ở chế độ nhiều cửa sổ đối với nhiều kích thước cửa sổ cũng hoạt động tốt trên các thiết bị có thể gập lại.

Để tìm hiểu thêm về cách tạo ứng dụng cho thiết bị có thể gập lại, hãy xem nội dung Tìm hiểu về thiết bị có thể gập lại.

Không tương thích với màn hình

Mặc dù khung và công cụ Android cung cấp mọi thứ bạn cần để cung cấp ứng dụng cho mọi cấu hình màn hình, nhưng có thể bạn sẽ quyết định không muốn ứng dụng của mình xuất hiện trên một số cấu hình màn hình do không tương thích. Trong trường hợp này, bạn có thể khai báo dịch vụ hỗ trợ màn hình bị hạn chế.