91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

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

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

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

贵溪市| 佛坪县| 隆子县| 昆明市| 微博| 礼泉县| 南丹县| 黑水县| 木兰县| 绥阳县| 铜山县| 工布江达县| 聂拉木县| 射阳县| 剑阁县| 曲阳县| 莒南县| 陕西省| 岳普湖县| 分宜县| 南安市| 丹江口市| 遵义县| 闵行区| 乌审旗| 应用必备| 页游| 日喀则市| 板桥市| 禹州市| 桦甸市| 那曲县| 资中县| 游戏| 荆州市| 新宾| 东山县| 石屏县| 嘉善县| 高唐县| 揭东县|