Hình trong hình (PiP) là một loại chế độ nhiều cửa sổ dành cho các hoạt động phát video toàn màn hình. Tính năng này cho phép người dùng xem video trong một cửa sổ nhỏ được ghim vào góc màn hình trong khi di chuyển giữa các ứng dụng hoặc duyệt xem nội dung trên màn hình chính.
Cướp lại bóng
- Đảm bảo ẩn các thành phần trên giao diện người dùng và tiếp tục phát video khi hoạt động ở chế độ PiP.
- Tắt tính năng đổi kích thước liền mạch cho nội dung không phải video.
- Các hoạt động phát video trên giao diện người dùng ở mức tối thiểu sẽ đem lại trải nghiệm người dùng tốt nhất.
- Tránh hiện nội dung nào khác ngoài nội dung video.
Thêm tính năng hỗ trợ hình trong hình vào ứng dụng
Theo mặc định, hệ thống không tự động hỗ trợ tính năng PiP cho ứng dụng và cần được khai báo để hỗ trợ tính năng này.
Cửa sổ PiP xuất hiện ở lớp trên cùng của màn hình, ở một góc mà hệ thống chọn.
Các chế độ kiểm soát
Theo mặc định, Android cung cấp các chế độ điều khiển PiP để đóng cửa sổ, mở rộng cửa sổ trở lại chế độ toàn màn hình, cài đặt và phát nội dung nghe nhìn. Ứng dụng của bạn có thể thêm các thao tác tuỳ chỉnh và thành phần biểu tượng phù hợp để cho phép người dùng tương tác với nội dung PiP.
Người dùng có thể hiển thị các chế độ điều khiển này trong trình đơn cửa sổ PiP bằng cách nhấn vào cửa sổ trên thiết bị di động hoặc chọn trình đơn trong điều khiển từ xa của TV. Nếu ứng dụng có một phiên hoạt động nội dung đa phương tiện đang hoạt động, thì các nút điều khiển phát, tạm dừng, tiếp theo và trước đó cũng sẽ xuất hiện. Hãy đọc bài viết về cách thêm các chế độ kiểm soát này.
Ở chế độ PiP, hoạt động của bạn sẽ hiển thị trong một cửa sổ nhỏ. Người dùng không thể tương tác với các thành phần giao diện người dùng khác của ứng dụng ở chế độ này và có thể khó thấy chi tiết về các thành phần giao diện người dùng nhỏ trong cửa sổ PiP.
Cách sử dụng
Cho phép người dùng tiếp tục xem video không chỉ trong ứng dụng của bạn mà còn tiếp tục trên thiết bị của họ. Ứng dụng của bạn kiểm soát thời điểm hoạt động hiện tại chuyển sang chế độ PiP – đây có thể là một hoạt động tương tác như rời khỏi chế độ xem hiện tại hoặc vuốt lên để về màn hình chính.
Dưới đây là một số ví dụ về hành động có thể thực hiện:
Một hoạt động có thể chuyển sang chế độ PiP khi người dùng nhấn vào nút màn hình chính hoặc vuốt lên để về màn hình chính. Đây là cách Google Maps không ngừng hiển thị thông tin đường đi trong khi người dùng chạy một hoạt động khác cùng một lúc.
Ứng dụng của bạn có thể chuyển một video sang chế độ PiP khi người dùng điều hướng từ video để duyệt xem nội dung khác.
Ứng dụng của bạn có thể chuyển video sang chế độ PiP trong khi người dùng xem đến cuối tập nội dung. Màn hình chính cho thấy thông tin quảng bá hoặc tóm tắt về tập tiếp theo trong loạt video.
Ứng dụng của bạn có thể giúp người dùng thêm nội dung bổ sung vào hàng đợi trong khi xem video. Video sẽ tiếp tục phát ở chế độ PiP trong khi màn hình chính hiện một hoạt động lựa chọn nội dung.
Sử dụng mẫu tương tác bổ sung cho trải nghiệm xem mà không gây gián đoạn. Ví dụ: nếu video đang ở cuối một tập nội dung, thì việc chuyển sang chế độ PiP khi rời khỏi màn hình chính sẽ yêu cầu người dùng thực hiện thêm thao tác để quay lại và dừng phát hoặc điều khiển các nút điều khiển nhỏ.
Trong ứng dụng của bạn, người dùng có thể chọn một video mới khi duyệt xem nội dung trên màn hình chính, trong khi một hoạt động phát video đang ở chế độ PiP. Phát video mới trong hoạt động phát hiện có ở chế độ toàn màn hình thay vì chạy hoạt động mới có thể khiến người dùng nhầm lẫn.
Mẫu tương tác
Người dùng có thể kéo cửa sổ PiP đến một vị trí khác.
Nhấn một lần vào cửa sổ để hiện nút bật/tắt chế độ toàn màn hình, nút đóng, nút cài đặt và các hành động tuỳ chỉnh mà ứng dụng của bạn cung cấp (ví dụ: nút điều khiển phát).
Nhấn đúp vào cửa sổ để chuyển đổi giữa kích thước PiP hiện tại và kích thước PiP tối đa hoặc tối thiểu. Ví dụ: nhấn đúp vào cửa sổ được phóng to để thu nhỏ cửa sổ đó và ngược lại.
Lưu trữ cửa sổ bằng cách kéo cửa sổ đó sang cạnh trái hoặc phải. Để huỷ lưu trữ cửa sổ, hãy nhấn vào phần hiển thị của cửa sổ đã lưu trữ hoặc kéo cửa sổ đó ra.
Đổi kích thước cửa sổ PiP bằng cách chụm để thu phóng.
Vuốt PiP xuống để xoá cửa sổ.
Kiểu chuyển cảnh
Ảnh động mượt mà khi chuyển sang chế độ PiP
Khi người dùng kích hoạt chế độ PiP, hoạt động hiện tại sẽ thu nhỏ từ toàn màn hình xuống một cửa sổ nhỏ. Cửa sổ này sẽ tiếp tục hiển thị nội dung mà không phủ lên giao diện người dùng nào.
Android 12 đã cải tiến đáng kể giao diện cho các hiệu ứng chuyển đổi ảnh động giữa cửa sổ toàn màn hình và cửa sổ PiP. Bạn nên triển khai tất cả các thay đổi có thể áp dụng; sau khi bạn thực hiện việc này, các thay đổi này sẽ tự động điều chỉnh theo màn hình lớn như màn hình gập và máy tính bảng mà không cần làm gì thêm.
Nếu ứng dụng của bạn không bao gồm các bản cập nhật hiện hành này, thì hiệu ứng chuyển đổi PiP vẫn hoạt động, nhưng ảnh động sẽ kém tinh tế hơn. Ví dụ: việc chuyển từ chế độ toàn màn hình sang chế độ PiP có thể khiến cửa sổ PiP biến mất trong quá trình chuyển đổi trước khi cửa sổ này xuất hiện trở lại khi quá trình chuyển đổi hoàn tất.
Kể từ Android 12, cờ PictureInPictureParams.Builder.setAutoEnterEnabled(true)
sẽ cung cấp ảnh động mượt mà hơn nhiều để chuyển đổi sang nội dung video ở chế độ PiP bằng thao tác bằng cử chỉ, ví dụ: khi vuốt lên màn hình chính từ chế độ toàn màn hình.
Bạn nên làm như vậy nếu ứng dụng của mình thuộc danh mục ứng dụng ENTERTAINMENT
, COMMUNICATION
hoặc VIDEO_PLAYER
.
Nếu ứng dụng của bạn không có thay đổi này, các hiệu ứng chuyển đổi PiP bằng thao tác cử chỉ vẫn hoạt động nhưng ảnh động sẽ kém tinh tế hơn. Video 1 cho thấy một ví dụ về điều này: cửa sổ thu nhỏ thành biểu tượng ứng dụng và biến mất, sau đó xuất hiện trở lại khi quá trình chuyển đổi hoàn tất.
Hình ảnh video mượt mà
Khi chúng tôi giới thiệu PiP trong Android 8.0, sourceRectHint
cho biết khu vực của hoạt động hiển thị sau khi chuyển sang PiP, ví dụ: giới hạn chế độ xem video trong trình phát video. Kể từ Android 12, hệ điều hành sử dụng sourceRectHint
để triển khai ảnh động mượt mà hơn nhiều khi cả khi vào và thoát khỏi chế độ PiP.
Nếu ứng dụng của bạn không cung cấp sourceRectHint
thích hợp, thì các hiệu ứng chuyển đổi PiP vẫn hoạt động nhưng ảnh động sẽ kém tinh tế hơn. Ví dụ: video 3 cho thấy một ví dụ chưa hoàn thiện về quá trình chuyển đổi từ chế độ toàn màn hình sang chế độ PiP: sau khi cửa sổ toàn màn hình thu nhỏ thành cửa sổ PiP, cửa sổ này sẽ được phủ một lớp phủ màu đen trước khi hiển thị lại video.
sourceRectHint
Để xem ví dụ về giao diện ảnh động PiP khi sourceRectHint
được triển khai đúng cách, hãy xem video 2 trong phần trước.
Hãy tham khảo mẫu PictureInPicture cho Android bằng Kotlin để biết thông tin tham khảo về cách mang lại trải nghiệm chuyển đổi tinh tế.
Để biết thêm về cách triển khai PiP, hãy xem tài liệu dành cho nhà phát triển về chế độ Hình trong hình.