Android分割画面下の縦横画面判断

1776 ワード

スクリーン分割モードでの縦横スクリーンは非スクリーン分割モードでの縦横スクリーンではなく、その縦横スクリーンは絶対的ではなく、具体的な縦横値はスクリーン分割後の高さと幅値の大きさによって決まる.
//1.    
DisplayMetrics dm = getResources().getDisplayMetrics()
int width = dm.widthPixels;
int height = dm.heightPixels;
//          ,     (portrait)    (landscape)。

//2.      ,            。
if(getResources().getConfiguration().orientation==Configuration.ORIENTATION_PORTRAIT)
    private void setHomepageAppBarPaddingTop() {
        final View appbar_layout = this.findViewById(R.id.appbar_layout);
        final int paddingTop=getResources().getDimensionPixelSize(R.dimen.appbar_padding);
        ComponentName componentname = new ComponentName("com.android.>>>>", "om.android.>>>>.******");
        if(isInMultiWindowMode()  //   &&!componentname.equals(Objects.requireNonNull(Utils.getSplitScreenPrimaryStack()).topActivity)){
            Log.d(TAG, "setHomepageAppBarPaddingTop: " + Utils.getSplitScreenPrimaryStack().topActivity.toString()+ this.getResources().getConfiguration().orientation+"");
            appbar_layout.setPadding(0,0,0,0);
        }else{
            appbar_layout.setPadding(0,paddingTop,0,0);
        }
    }
    //           
    public static ActivityManager.StackInfo getSplitScreenPrimaryStack(){
        try {
            return ActivityTaskManager.getService().getStackInfo(WINDOWING_MODE_SPLIT_SCREEN_PRIMARY, ACTIVITY_TYPE_UNDEFINED);
        } catch (RemoteException e) {
            return null;
        }
    }
//     
    @Override
    public void onMultiWindowModeChanged(boolean isInMultiWindowMode) {
        super.onMultiWindowModeChanged(isInMultiWindowMode);
    }