1. 程式人生 > >Android-->播放視訊橫豎屏切換的2種方式

Android-->播放視訊橫豎屏切換的2種方式

Activity的橫豎屏切換其實很簡單, 如果你的Activity沒有宣告android:configChanges, 那麼Activity的方向就會隨著手機的旋轉而旋轉. (手機需要開啟自動旋轉功能, 通常在手機的頂部通知欄中)

本來這樣就搞定了, 但是….之所以需要自己控制, 是因為橫屏豎屏時, 見面的顯示需要有所不同.
才需要針對做出處理.

接下來, 就教大家2種介面處理的方式:

為了更好的使用者體驗, 請在Activity中加上屬性android:configChanges="orientation|screenSize", 防止手機旋轉時, Activity被重建.

1:系統自動處理

如果要讓系統自動處理, 橫豎屏介面, 只需要一個簡單的配置:
這裡寫圖片描述

建立一個 layout-land資原始檔夾, 裡面的xml會在手機橫屏時, 自動呼叫. 其他程式碼不變. 就完成了介面切換.

注意:findViewById的時候, 要判斷當前方向哦, 要不然會找不到id,因為xml不一樣了.如圖:
這裡寫圖片描述
根據方向, 初始化不同的View

注意:當你呼叫setContentView之後, 所有的View, 都已經重新建立了.
這樣會出現一個小問題: 就是視訊播放的進度會丟失,此時就需要儲存視訊播放進度, 方向切換後seekTo就行了.

2:手動處理

當手機旋轉後, Activity

會執行onConfigurationChanged方法:

 @Override
 public void onConfigurationChanged(Configuration newConfig) {
     super.onConfigurationChanged(newConfig);
     initView();
 }

只需要在這個方法中, 控制想要顯示, 或者 想要隱藏的View.
這裡寫圖片描述

想這樣, 手動控制隱藏跟顯示.

好處在於:
1. layout-land資原始檔夾, 不需要, 但是最主要的xml, 要包含橫豎屏所有的View才行.
2. 不需要在手機選裝之後重新呼叫setContentView

了, 因為用之前在onCreate中設定的就行了.
3. 視訊的進度自動儲存了, 這一條可能是作用最大的了.

聯絡作者

請使用QQ掃碼加群, 小夥伴們在等著你哦!

關注我的公眾號, 每天都能一起玩耍哦!