Android Studio 全屏CUTOUT MODE

Android Studio 全屏CUTOUT MODE
Android Studio 全屏CUTOUT MODE

全屏令人沉浸游戲免受干擾. 收埋頂『狀態』『標題』底『導航』.

  1. 舊時全屏係『Activity:onCreate()』飛『標題』
 requestWindowFeature(Window.FEATURE_NO_TITLE);
  1. 飛『狀態』
Window window =  getWindow();
window.setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN,WindowManager.LayoutParams.FLAG_FULLSCREEN);
  1. 上述代碼需係『填充布局』前執行
setContentView(R.layout.activity_main);
  1. 亦可用『全屏样式』係『xml』
<style  name=”Theme.Fullscreen”  parent=”android:Theme.NoTitleBar.Fullscreen” />
  1. 係<application>或<activity>加『全屏样式』
<application android:theme=”@style/Theme.Fullscreen” >
  1. 因Android『導航』由硬件鍵變成『觸摸屏』軟件鍵, 要飛底『導航』飛頂『狀態』. 即『沉㓎模式』要係4 Kit Kat(API 19).
    if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.KITKAT)
  1. 係『Activity:onCreate()』執行『setSystemUiVisibility()』設置沉浸模式
View decorView = window.getDecorView();
decorView.setSystemUiVisibility(View.SYSTEM_UI_FLAG_IMMERSIVE_STICKY |

View.SYSTEM_UI_FLAG_LAYOUT_STABLE |

View.SYSTEM_UI_FLAG_LAYOUT_HIDE_NAVIGATION |

View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN |

View.SYSTEM_UI_FLAG_HIDE_NAVIGATION |

View.SYSTEM_UI_FLAG_FULLSCREEN);

  1. 設置沉浸模式
setSystemUiVisibility() 簡述
View.SYSTEM_UI_FLAG_HIDE_NAVIGATION 飛底『導航』
View.SYSTEM_UI_FLAG_FULLSCREEN 飛頂『狀態』
View.SYSTEM_UI_FLAG_IMMERSIVE_STICKY 自動恢復『沉㓎模式』
View.SYSTEM_UI_FLAG_IMMERSIVE 『沉㓎模式』
  1. 隨『全面屏』追求係手機頭『鑿窿』裝『相機』. 導置『全面屏』變『兔唇屏 』.即『CUTOUT MODE』要係Androd 9.0 Pie(API 28) 受支持.
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.P) {
  1. 同係設布局『LAYOUT_IN_DISPLAY_CUTOUT_MODE_SHORT_EDGES』
WindowManager.LayoutParams param = window.getAttributes();
param.layoutInDisplayCutoutMode = WindowManager.LayoutParams.LAYOUT_IN_DISPLAY_CUTOUT_MODE_SHORT_EDGES;
window.setAttributes(param);}

 

layoutInDisplayCutoutMode 簡述
LAYOUT_IN_DISPLAY_CUTOUT_MODE_DEFAULT 全屏唔延伸至『兔唇 』, 非全屏延伸至『兔唇 』
LAYOUT_IN_DISPLAY_CUTOUT_MODE_NEVER WINDOW唔延伸至『兔唇 』
LAYOUT_IN_DISPLAY_CUTOUT_MODE_SHORT_EDGES 窻口延伸至『兔唇 』

 

發表評論