DialogFragment 設置橫豎屏各自寬高,且適應屏幕旋轉

  @Override
    public void onConfigurationChanged(@NonNull Configuration newConfig) {

        DisplayMetrics displayMetrics = new DisplayMetrics();
        getActivity().getWindowManager().getDefaultDisplay().getMetrics(displayMetrics);
        // 橫屏時取高度為寬度,高度為為 warp_content
        int screenWidth = displayMetrics.widthPixels;
        int screenHeight = displayMetrics.heightPixels;
        ViewGroup.LayoutParams params = getDialog().getWindow().getAttributes();

        if(screenWidth>screenHeight){
            params.width = (int)(screenHeight*1.1f);
            params.height = (int)(screenHeight*0.9f);
        }else{
            params.width = (int)(screenWidth*0.8f);
            params.height = (int)(screenHeight*0.6f);
        }

        getDialog().getWindow().setAttributes((WindowManager.LayoutParams) params);
        super.onConfigurationChanged(newConfig);
    }

    @Override
    public void onResume() {

        DisplayMetrics displayMetrics = new DisplayMetrics();
        getActivity().getWindowManager().getDefaultDisplay().getMetrics(displayMetrics);
        // 橫屏時取高度為寬度,高度為為 warp_content
        int screenWidth = displayMetrics.widthPixels;
        int screenHeight = displayMetrics.heightPixels;
        ViewGroup.LayoutParams params = getDialog().getWindow().getAttributes();

        if(screenWidth>screenHeight){
            params.width = (int)(screenHeight*1.1f);
            params.height = (int)(screenHeight*0.9f);
        }else{
            params.width = (int)(screenWidth*0.8f);
            params.height = (int)(screenHeight*0.6f);
        }

        getDialog().getWindow().setAttributes((WindowManager.LayoutParams) params);
        super.onResume();

    }
?著作權歸作者所有,轉載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關閱讀更多精彩內(nèi)容

  • 之前項目中有個關于橫豎屏的需求,原本以為是很簡單的事情,隨便一些就能解決,但結果發(fā)現(xiàn)事實并不是這樣。網(wǎng)上也搜索了很...
    ZhengYaWei閱讀 1,398評論 5 13
  • 針對上一版本發(fā)現(xiàn)還有一些問題 針對優(yōu)化處理 一 在APP中所需的設置 1.在配置中關閉屏幕方向 將控制權交給代碼(...
    進擊的禿瓢閱讀 4,227評論 2 1
  • 一、屏幕旋轉方向監(jiān)聽 1、UIDeviceOrientation:設備方向 iOS 定義了七種設備方向: 當設備方...
    李子哈哈閱讀 4,827評論 0 0
  • 前言 現(xiàn)在大部分的智能移動設備通過自動旋轉,能夠自動切換去呈現(xiàn)最適合當前屏幕顯示的內(nèi)容,無疑大大提升了使用者的用戶...
    BladeWayne閱讀 10,281評論 2 54
  • iOS8之后的屏幕旋轉和iOS6,7有很大不同,項目中自己之前遇到過這樣的需求,從A界面呈現(xiàn)B界面,如果A橫屏則呈...
    seventhboy閱讀 1,515評論 0 1

友情鏈接更多精彩內(nèi)容