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);
}