Android 8.0 Oreo 畫中畫模式
Android 8.0 Oreo(API Level 26)允許活動啟動畫中畫 Picture-in-picture(PIP)模式。PIP 是一種特殊型別的多視窗模式,主要用於視訊播放。PIP 模式已經可用於 Android TV,而 Android 8.0 則讓該功能可進一步用於其他 Android 裝置。
畫中畫 Picture-in-picture(PIP)模式
當一個活動在畫中畫模式,它處於暫停狀態,但應繼續展示內容。出於這個原因,您應該確保您的應用程式不在的 onpause ( ) 中處理暫停播放。相反,您應該在 onstop ( ) 暫停播放·,在 onstart ( ) 中繼續播放。
指定您的活動可以使用畫中畫模式
從 Android 8.0 開始,如果您支援畫中畫模式,您不需要在 Manifest 中設 android:resizeableActivity 為 true,您只需要在其他多視窗模式中設定 android:resizeableActivity
Android 8.0(API Level 26)引入了一個新的物件 PictureInPictureParams,您通過畫中畫方法指定一個活動應該表現的畫中畫模式。該物件指定效能例如首選縱橫比。
現在不僅僅是在 Android TV 上,還可以在所有 Android 裝置上使用 “新增畫中畫” 中描述的現有 PIP 方法。此外,Android 8.0 還提供以下方法來支援 PIP 模式:
Activity.enterPictureInPictureMode (PictureInPictureParams args) : 將活動放在畫中畫模式中。在 args 中指定活動的寬高比和其他配置設定。如果 args 中的任何欄位為空,系統將使用您上次呼叫的 Activity.setPictureInPictureParams ( ) 。指定的活動被放置在螢幕的一個角落;螢幕的其餘部分都填充了螢幕上的先前活動。進入畫中畫模式的活動進入暫停狀態,但仍保持啟動狀態。 如果使用者點選畫中畫活動,則系統顯示給使用者互動選單,在畫中畫模式中,沒有任何觸控操作可以回到活動。
Activity.setPictureInPictureParams ( ) : 更新活動的畫中畫配置。 如果活動當前處於畫中畫模式,這時將會更新,這在活動比發生變化的時候是很有用的。 如果活動不在畫中畫模式中,這些設定不管您是否呼叫了 enterPictureInPictureMode ( ) 方法,它都會生效。
Android 多視窗支援
△ 兩個應用在分屏模式中左右並排顯示
從 Android 7.0 Nougat 開始,Android 允許多個應用同時共享螢幕。例如:使用者可以分屏顯示應用,在左邊檢視網頁,同時在右邊寫郵件。 這些功能取決於:
執行 Android 裝置具有分屏模式。 在此模式中,系統以左右並排或上下並排的方式分屏顯示兩個應用。 使用者可以拖動兩個應用之間的分界線,放大其中一個應用,同時縮小另一個。
在執行 Android 的 Nexus Player 上,應用能以畫中畫模式顯示,即在使用者瀏覽網頁或與其他應用互動的同時繼續顯示內容。
較大裝置的製造商可選擇啟用自由形狀模式,在該模式中,使用者可以自由調整各 Activity 的尺寸。 若製造商啟用此功能,裝置將同時具有自由形狀模式和分屏模式。
使用者可以通過以下方式切換到多視窗模式:
若使用者開啟 Overview 螢幕並長按 Activity 標題,則可以拖動該 Activity 至螢幕突出顯示的區域,使 Activity 進入多視窗模式。
若使用者長按 Overview 按鈕,裝置上的當前 Activity 將進入多視窗模式,同時將開啟 Overview 螢幕,使用者可在該螢幕中選擇要共享螢幕的另一個 Activity。
使用者可以在兩個 Activity 共享螢幕的同時在這兩個 Activity 之間拖放資料 (在此之前,使用者只能在一個 Activity 內部拖放資料)。
針對多視窗模式配置應用
您可以對應用的 Activity 是否支援多視窗顯示和顯示方式進行配置。 您可以在 Manifest 檔案中設定屬性,以控制大小和佈局。 根 Activity 的屬性設定適用於其任務棧中的所有 Activity。 例如:如果根 Activity 已 android:resizeableActivity 設定為 true,則任務棧中的所有 Activity 都將可以調整大小。
android:resizeableActivity
在 Manifest 的 <activity> 或 <application> 節點中設定該屬性,啟用或禁用多視窗顯示:
android:resizeableActivity=["true" | "false"]
如果該屬性設定為 true,Activity 將能以分屏和自由形狀模式啟動。 如果此屬性設定為 false,Activity 將不支援多視窗模式。 如果該值為 false,且使用者嘗試在多視窗模式下啟動 Activity,該 Activity 將全屏顯示。
多視窗模式中被禁用的功能
在裝置處於多視窗模式中時,某些功能會被禁用或忽略,因為這些功能對與其他 Activity 或應用共享裝置螢幕的 Activity 而言沒有意義。 此類功能包括:
某些系統 UI 自定義選項將被禁用;例如:在非全屏模式中,應用無法隱藏狀態列。
系統將忽略對 android:screenOrientation 屬性所作的更改。
佈局屬性
<layout> 清單元素支援以下幾種屬性,這些屬性影響 Activity 在多視窗模式中的行為:
android:defaultWidth
以自由形狀模式啟動時 Activity 的預設寬度。
android:defaultHeight
以自由形狀模式啟動時 Activity 的預設高度。
android:gravity
以自由形狀模式啟動時 Activity 的初始位置。
android:minimalHeight、android:minimalWidth
分屏和自由形狀模式中 Activity 的最小高度和最小寬度。 如果使用者在分屏模式中移動分界線,使 Activity 尺寸低於指定的最小值,系統會將 Activity 裁剪為使用者請求的尺寸。
例如:以下節點顯示瞭如何指定 Activity 在自由形狀模式中顯示時 Activity 的預設大小、位置和最小尺寸:
<layout android:defaultHeight = "500dp"
android:defaultWidth = "600dp"
android:gravity = "top|end"
android:minimalHeight = "450dp"
android:minimalWidth = "300dp" />
</activity>
以上就是 Android 畫中畫和多視窗功能的全部內容,如果您有其他的 Android 8.0 Oreo 相容性的問題,我們非常感謝您在留言板裡提出。 如果您覺得文章對身邊的人有幫助,就動手轉發吧,讓更多的人關注我們並提出意見。
推薦閱讀:
掌握 Android O 行為變更指南,參與互動贏收藏版 Android 公仔!
Instant App 常見問題官方指南 | Android 開發者 FAQ Vol.6
相關文章
- Android 8.0 中如何實現視訊通話的畫中畫模式Android模式
- 創造 “魔術時刻” —— Android 8.0 畫中畫Android
- Android 8.0 Oreo 現已推出!Android
- Android 8.0 Oreo 推送通知的變化Android
- 玩轉全新的 Android 8.0 Oreo 後臺策略Android
- Android 利用 Canvas 畫畫板AndroidCanvas
- Android 8.0 Oreo 國內可用測試平臺上線Android
- 你的商業模式畫布畫好了沒?模式
- Android 8.0 Oreo 開發者常見問題 | Android 開發者 FAQ Vol.7Android
- 中文視訊首發 | Android 8.0 Oreo 推送通知的變化Android
- 商業模式畫布模式
- 在畫中畫視窗中安裝 React 元件React元件
- [譯] 挑戰 Flutter 之 YouTube(畫中畫)Flutter
- Flutter PIP(畫中畫)效果的實現Flutter
- Android 8.0 Oreo 之推送通知的變化 | 中文教學視訊Android
- 如何在Mac上的Safari中觀看YouTube畫中畫?Mac
- Android開源繪畫板(普通繪畫模式和可縮放模式)——秒學自定義View和觸控事件原理Android模式View事件
- 「Premiere中文新手教程」視訊畫中畫小技巧REM
- 用MovieMator Video Editor Pro建立畫中畫影片IDE
- CAD夢想畫圖如何進行重畫、繪圖模式繪圖模式
- AI作畫—中國畫之山水畫AI
- PS小白教程:如何在Photoshop中製作畫中畫的效果?
- 研讀《商業模式畫布》模式
- canvas畫素畫板Canvas
- ai繪畫商業化來了,ai繪畫軟體“數畫”實現全民創作變現模式!AI模式
- iOS 9 分屏多工(3):畫中畫(PiP)快速入門iOS
- 如何用視訊剪輯軟體製作畫中畫
- 畫布就是一切(一)— 畫布程式設計的基本模式程式設計模式
- 畫江湖之23種設計模式設計模式
- 漫畫:什麼是單例模式?單例模式
- 【風農翻譯】開始畫畫素畫 #2
- 【風農翻譯】開始畫畫素畫 #1
- 【風農翻譯】開始畫畫素畫 #3
- 【風農翻譯】開始畫畫素畫 #8
- 【風農翻譯】開始畫畫素畫 #7
- 【風農翻譯】開始畫畫素畫 #5
- 【風農翻譯】開始畫畫素畫 #4
- 【風農翻譯】開始畫畫素畫 #6