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.
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.
Để 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).
Độ độ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:
- Xây dựng ứng dụng Wear OS
- Tạo ứng dụng dành cho TV
- Tổng quan về Android cho Ô tô
- Tổng quan về Ứng dụng dành cho ChromeOS
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ị.
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.