super.onCreate(savedInstanceState);
//去掉标题
requestWindowFeature(Window.FEATURE_NO_TITLE);
//开局就一张背景图
setContentView(R.layout.notch);
//全屏显示
getWindow().getDecorView().setSystemUiVisibility(View.SYSTEM_UI_FLAG_FULLSCREEN | View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN);
WindowManager.LayoutParams lp = getWindow().getAttributes();
//下面图1
lp.layoutInDisplayCutoutMode = WindowManager.LayoutParams.LAYOUT_IN_DISPLAY_CUTOUT_MODE_NEVER;
//下面图2
// lp.layoutInDisplayCutoutMode = WindowManager.LayoutParams.LAYOUT_IN_DISPLAY_CUTOUT_MODE_SHORT_EDGES;
//下面图3
// lp.layoutInDisplayCutoutMode = WindowManager.LayoutParams.LAYOUT_IN_DISPLAY_CUTOUT_MODE_DEFAULT;
getWindow().setAttributes(lp);
}
}
这里设置为全屏的显示效果,三种模式的结果如下图所示:
图一可以看到上面有黑边。
图二明显看到有刘海。
图三同样是黑边。
可以看到:
LAYOUT_IN_DISPLAY_CUTOUT_MODE_SHORT_EDGES
模式会让屏幕到延申刘海区域中。LAYOUT_IN_DISPLAY_CUTOUT_MODE_NEVER
模式不会让屏幕到延申刘海区域中,会留出一片黑色区域。LAYOUT_IN_DISPLAY_CUTOUT_MODE_DEFAULT
模式在全屏显示下跟LAYOUT_IN_DISPLAY_CUTOUT_MODE_NEVER
一样。
我们再来看看LAYOUT_IN_DISPLAY_CUTOUT_MODE_DEFAULT
模式在沉浸式状态栏下的效果,代码如下:
public class NotchActivity extends Activity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
//去掉标题
requestWindowFeature(Window.FEATURE_NO