搭建自己的直播平臺,更改狀態列的字型顏色

zhibo系統開發發表於2021-11-15

搭建自己的直播平臺,更改狀態列的字型顏色實現的相關程式碼

控制狀態列顯示,在任何位置通過新增和移除全屏的flag

// 隱藏狀態列
getWindow().addFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN);
// 顯示狀態列
getWindow().clearFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN);

控制狀態列和導航欄顯示

View.SYSTEM_UI_FLAG_LAYOUT_STABLE:全屏顯示時保證尺寸不變。
View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN:Activity全屏顯示,狀態列顯示在Activity頁面上面。
View.SYSTEM_UI_FLAG_LAYOUT_HIDE_NAVIGATION:效果同View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN
View.SYSTEM_UI_FLAG_HIDE_NAVIGATION:隱藏導航欄
View.SYSTEM_UI_FLAG_FULLSCREEN:Activity全屏顯示,且狀態列被隱藏覆蓋掉。
View.SYSTEM_UI_FLAG_VISIBLE:Activity非全屏顯示,顯示狀態列和導航欄。
View.INVISIBLE:Activity伸展全屏顯示,隱藏狀態列。
View.SYSTEM_UI_LAYOUT_FLAGS:效果同View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN
View.SYSTEM_UI_FLAG_IMMERSIVE_STICKY:必須配合View.SYSTEM_UI_FLAG_FULLSCREEN和View.SYSTEM_UI_FLAG_HIDE_NAVIGATION組合使用,達到的效果是拉出狀態列和導航欄後顯示一會兒消失。
// 全屏展示
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.JELLY_BEAN) {
    if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {
        // 全屏顯示,隱藏狀態列和導航欄,拉出狀態列和導航欄顯示一會兒後消失。
        activity.getWindow().getDecorView().setSystemUiVisibility(
                View.SYSTEM_UI_FLAG_LAYOUT_STABLE
                        | View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN
                        | View.SYSTEM_UI_FLAG_LAYOUT_HIDE_NAVIGATION
                        | View.SYSTEM_UI_FLAG_HIDE_NAVIGATION
                        | View.SYSTEM_UI_FLAG_FULLSCREEN
                        | View.SYSTEM_UI_FLAG_IMMERSIVE_STICKY);
    } else {
        // 全屏顯示,隱藏狀態列
        activity.getWindow().getDecorView().setSystemUiVisibility(View.SYSTEM_UI_FLAG_FULLSCREEN);
    }
}
// 非全屏顯示,顯示狀態列和導航欄
activity.getWindow().getDecorView().setSystemUiVisibility(View.SYSTEM_UI_FLAG_VISIBLE);

設定的狀態列背景為白色,字型為暗色

getWindow().setStatusBarColor(getResources().getColor(R.color.white));//設定狀態列顏色
getWindow().getDecorView().setSystemUiVisibility(View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN | View.SYSTEM_UI_FLAG_LIGHT_STATUS_BAR);//實現狀態列圖示和文字顏色為暗色

隱藏狀態列但不隱藏狀態列字型,佈局上浮

getWindow().addFlags(WindowManager.LayoutParams.FLAG_TRANSLUCENT_STATUS);//隱藏狀態列但不隱藏狀態列字型
//getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN, WindowManager.LayoutParams.FLAG_FULLSCREEN); //隱藏狀態列,並且不顯示字型
getWindow().getDecorView().setSystemUiVisibility(View.SYSTEM_UI_FLAG_LIGHT_STATUS_BAR);//實現狀態列文字顏色為暗色

以上就是搭建自己的直播平臺,更改狀態列的字型顏色實現的相關程式碼, 更多內容歡迎關注之後的文章


來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/69978258/viewspace-2842204/,如需轉載,請註明出處,否則將追究法律責任。

相關文章