亚洲激情专区-91九色丨porny丨老师-久久久久久久女国产乱让韩-国产精品午夜小视频观看

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

Android 應用中如何處理播放器的橫屏切換問題

發布時間:2020-12-03 15:08:06 來源:億速云 閱讀:128 作者:Leah 欄目:移動開發

本篇文章給大家分享的是有關Android 應用中如何處理播放器的橫屏切換問題,小編覺得挺實用的,因此分享給大家學習,希望大家閱讀完這篇文章后可以有所收獲,話不多說,跟著小編一起來看看吧。

1 在播放中如何處理播放器的橫屏切換 和 播放器上的文案顯示的布局變化

在activity 中 設置

 android:configChanges="orientation|screenSize"

這樣在旋轉中,activity 就不會重建

重寫系統方法

public void onConfigurationChanged(Configuration newConfig) {
    // TODO Auto-generated method stub
    super.onConfigurationChanged(newConfig);
    if (newConfig.orientation == Configuration.ORIENTATION_LANDSCAPE) {
      initVideoLandLayout();
    } else {
      initVideoPortLayout();
    }
  }

通過 判斷 newConfig.orientation 來判斷 當前是橫屏還是豎屏, 這個是在看視頻的過程中去判斷是不是橫屏還是豎屏,在我門一開始播放視頻的時候,也可以去判斷,具體的處理方法是

 private void initVideoPlayerLayout() {
    DisplayMetrics dm = new DisplayMetrics();
    getWindowManager().getDefaultDisplay().getMetrics(dm);
    width = dm.widthPixels;
    heigh = dm.heightPixels;
    if (width / heigh > 0) { // 橫屏
      initVideoLandLayout();
      fullscreen = true;
    }
    if (width / heigh == 0) { //豎屏
      initVideoPortLayout();
    }
  }

在具體變化播放器上的布局的時候我們可以動態的去更換

 private void initVideoPortLayout() {
    RelativeLayout.LayoutParams videoLp = new RelativeLayout.LayoutParams(RelativeLayout.LayoutParams.MATCH_PARENT, RelativeLayout.LayoutParams.MATCH_PARENT);
    videoLp.addRule(RelativeLayout.CENTER_IN_PARENT);
    videoView.setLayoutParams(videoLp);
    videoView.start();
    RelativeLayout.LayoutParams hotelInfoLp = new RelativeLayout.LayoutParams(DeviceInfoUtil.getPixelFromDip(200), DeviceInfoUtil.getPixelFromDip(55));
    hotelInfoLp.addRule(RelativeLayout.ALIGN_PARENT_BOTTOM);
    hotelInfoLp.addRule(RelativeLayout.ALIGN_PARENT_RIGHT);
    hotelInfoLp.rightMargin = DeviceInfoUtil.getPixelFromDip(8);
    hotelInfoLp.bottomMargin = DeviceInfoUtil.getPixelFromDip(90);
    mHotelInfoLayout.setLayoutParams(hotelInfoLp);
  }

這是豎屏處理  

private void initVideoLandLayout() {
    RelativeLayout.LayoutParams layoutParams =
        new RelativeLayout.LayoutParams(RelativeLayout.LayoutParams.FILL_PARENT, RelativeLayout.LayoutParams.FILL_PARENT);
    layoutParams.addRule(RelativeLayout.ALIGN_PARENT_TOP);
    layoutParams.addRule(RelativeLayout.ALIGN_PARENT_LEFT);
    layoutParams.addRule(RelativeLayout.ALIGN_PARENT_RIGHT);
    videoView.setLayoutParams(layoutParams);
    RelativeLayout.LayoutParams hotelInfoLp = new RelativeLayout.LayoutParams(DeviceInfoUtil.getPixelFromDip(200), DeviceInfoUtil.getPixelFromDip(55));
    hotelInfoLp.addRule(RelativeLayout.ALIGN_PARENT_RIGHT);
    hotelInfoLp.addRule(RelativeLayout.ALIGN_PARENT_BOTTOM);
    hotelInfoLp.rightMargin = DeviceInfoUtil.getPixelFromDip(8);
    hotelInfoLp.bottomMargin = DeviceInfoUtil.getPixelFromDip(95);
    mHotelInfoLayout.setLayoutParams(hotelInfoLp);
  }

這是橫屏處理

我門知道 系統的videoView 控件 自帶有播放,暫停 等進度條這是MediaContronller 當我們手點擊的時候 進度條會顯示,手離開界面的時候,會不顯示,這是videoView 中的方法

 @Override
  public boolean onTouchEvent(MotionEvent ev) {
    if (isInPlaybackState() && mMediaController != null) {
      toggleMediaControlsVisiblity();
    }
    return false;
  }

再朝下看

private void toggleMediaControlsVisiblity() {
    if (mMediaController.isShowing()) {
      mMediaController.hide();
    } else {
      mMediaController.show();
    }
  }

最終調的是 mMediaController.hide(); 和 mMediaController.show(),

所以我門在自己的播放器界面要是實現自己的布局和播放器進度條 重寫hide() 和 show() 方法即可

以上就是Android 應用中如何處理播放器的橫屏切換問題,小編相信有部分知識點可能是我們日常工作會見到或用到的。希望你能通過這篇文章學到更多知識。更多詳情敬請關注億速云行業資訊頻道。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

息烽县| 饶平县| 杂多县| 泰兴市| 炎陵县| 洞口县| 高唐县| 白沙| 佛坪县| 潍坊市| 循化| 和顺县| 合水县| 晋中市| 上蔡县| 青浦区| 阆中市| 兰坪| 农安县| 新密市| 卢氏县| 阜康市| 澳门| 准格尔旗| 广东省| 固始县| 江门市| 平南县| 郧西县| 金湖县| 时尚| 清远市| 宜兴市| 佛学| 宜丰县| 黄梅县| 丰县| 盐亭县| 庆元县| 绿春县| 开鲁县|