1. 程式人生 > >系統狀態列設定背景顏色和APP標題欄一致(非全屏)

系統狀態列設定背景顏色和APP標題欄一致(非全屏)

可以把方法寫在BaseActivity中

public void initSystemBar(Boolean isLight) {
        if (Build.VERSION.SDK_INT >= 21) {
            //LAYOUT_FULLSCREEN 、LAYOUT_STABLE:讓應用的主體內容佔用系統狀態列的空間;
//            View decorView = getWindow().getDecorView();
//            int option = View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN
//                    | View.SYSTEM_UI_FLAG_LAYOUT_STABLE;
//            decorView.setSystemUiVisibility(option);
//            getWindow().setStatusBarColor(Color.TRANSPARENT);
            Window window = getWindow();
            //取消設定透明狀態列,使 ContentView 內容不再覆蓋狀態列
            window.clearFlags(WindowManager.LayoutParams.FLAG_TRANSLUCENT_STATUS);
            //需要設定這個 flag 才能呼叫 setStatusBarColor 來設定狀態列顏色
            window.addFlags(WindowManager.LayoutParams.FLAG_DRAWS_SYSTEM_BAR_BACKGROUNDS);
            //設定狀態列顏色
            if (isLight) {
                window.setStatusBarColor(getResources().getColor(R.color.white));
            } else {
                window.setStatusBarColor(getResources().getColor(R.color.common_title_bg));
            }

            //狀態列顏色接近於白色,文字圖示變成黑色
            View decor = window.getDecorView();
            int ui = decor.getSystemUiVisibility();
            if (isLight) {
                //light --> a|=b的意思就是把a和b按位或然後賦值給a,   按位或的意思就是先把a和b都換成2進位制,然後用或操作,相當於a=a|b
                ui |= View.SYSTEM_UI_FLAG_LIGHT_STATUS_BAR;
            } else {
                //dark  --> &是位運算裡面,與運算,  a&=b相當於 a = a&b,  ~非運算子
                ui &= ~View.SYSTEM_UI_FLAG_LIGHT_STATUS_BAR;
            }
            decor.setSystemUiVisibility(ui);
        }
    }
在Activity裡onCreate方法中(寫在setContentView後)
super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_mine_login);
        initSystemBar(true);

===============================================================


相關推薦

系統狀態設定背景顏色APP標題一致

可以把方法寫在BaseActivity中 public void initSystemBar(Boolean isLight) { if (Build.VERSION.SDK_INT >= 21) { //LAYOUT_FUL

Android改變狀態背景顏色使其與APP風格一體化

我相信大家肯定看到過很多軟體有沉浸式狀態列,在執行該App時改變了手機螢幕頂部狀態列的顏色,使他們的風格非常的統一,看起來異常的漂亮和清爽。想不想實現這種效果呢,其實在Android KITKAT上有一個新的特性可以設定手機狀態列的背景,讓手機整個介面的風格保持一致,看起來

Java 給PDF文件設定背景顏色背景圖片

如題,這篇文章主要介紹如何在Java應用程式中給PDF文件設定背景顏色和背景圖片。 使用元件: Spire.PDF for Java 下載Spire.PDF for JAVA包並解壓縮,然後從lib資料夾下匯入Spire.Pdf.jar包到Java應用程式中。 原PDF文件如下:

Ext.Net 1.x_Ext.Net_修改grid行或者背景顏色字型顏色

修改某一列的背景顏色和字型顏色 css程式碼 .x-grid-back-red { background: #FF0000; //修改背景顏色 color:#000000; //修改字型顏色 } JS程式碼 { header : '分成型

java中如何對JFrame進行設定背景顏色背景圖片

/** * 給JFrame 新增一個背景圖案。 */ package com.swingpractise; import javax.swing.*; public class JFrameBackground4 extends JFrame { //建立一個JLayeredPane用於分層的。 JLaye

【教程】Spire.Doc系列教程1:給Word文件設定背景顏色背景圖片

使用Spire.Doc,開發人員可以非常方便地給Word文件設定背景顏色和新增背景圖片。以下示例將詳細講述如何使用Spire.Doc給一個現有Word文件設定純色背景顏色,漸變背景顏色以及新增背景圖片。 設定背景顏色 設定純色背景顏色 //建立Document例項 Document doc

Android修改狀態背景顏色

一,概述 我相信很多初入Android開發的開發者都為自己開發的app的狀態列煩惱過,狀態列和自己的介面風格格格不入,但是不知道如何修改這個狀態列的顏色,感覺無從下手.我最近就是被這個狀態的預設風格搞得焦頭爛額,終於找到了相應的解決辦法.雖然程式碼不是我寫的,我也只能看懂一

JLabel設定背景顏色設定文字顏色

JLabel設定背景顏色: JLabel light1 = new JLabel("wuli"); light1.setOpaque(true);  //此句是重點,設定背景顏色必須先將它設定為不透明的,因為預設是透明的。。。 light1.setBackground(Co

QT入門-主視窗設定背景顏色背景圖片

程式碼是在前篇空間的程式碼基礎上加的,給主視窗新增背景顏色或背景圖片 直接上程式碼: int main (int argc, char **argv) { QApplication app(a

Android實現沉浸式通知欄通知欄背景顏色跟隨app導航背景顏色而改變

最近好多app都已經滿足了沉浸式通知欄, 所謂沉浸式通知欄:就是把用來導航的各種介面操作空間隱藏在以程式內容為主的情景中,通過相對“隱形”的介面來達到把使用者可視範圍最大化地用到內容本身上。  而最新安卓4.4系統的通知欄沉浸模式就是在軟體開啟的時候通知欄和軟體頂部顏色融為一體,這樣不僅可

Vue+vue-router+Webpack4模擬登陸跳轉巢狀路由功能vue-cli

Webpack實現的功能 打包和輸出html 打包,分離,壓縮和輸出css檔案 vue模板解析 自定義輸出js檔案路徑和名稱等 demo的基本功能 使用vue-router模擬登陸和跳轉 vue-router巢狀路由模擬登陸後切換頁面 packag

改變狀態背景顏色字型顏色解決因設定白色背景導致系統預設白色字型看不見問題

因為只有6.0以上的系統才支援狀態列字型顏色的設定,6.0一下的部分手機可通過修改系統原始碼來進行設定如小米,魅族。import android.annotation.TargetApi; import android.app.Activity; import android

ios 狀態statusBar的背景顏色字型顏色設定

假如我想讓狀態列顏色設定成紅色,字型仍為黑色,可以在需要顯示的那一頁進行如下設定:(最好寫在viewWillAppear裡面) //設定狀態列顏色 - (void)setStatusBarBackgroundColor:(UIColor *)color { UIView *

設定toolbar系統狀態顏色一致

  建立了一個預設的空的Activity之後,顯示的介面是這樣的 自上而下分別是狀態列、actionbar和內容區域。 隨著AndroidSDK的更新,actionbar被大家拋棄,更多的人開始選擇toolbar,預設情況下的toolbar的顏色和狀態列

設定狀態、導航背景顏色,修改導航返回按鈕顏色

1、設定狀態列為透明黑色: 在AppDelegate.h的- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOption

Android 介面優化一:系統狀態隱藏拓展到狀態

記得剛接手公司的專案的時候,系統狀態列是白的,字也是白的,隨後自己研究了一通,最終弄好了,還分為兩部分,主要是把背景拓展到狀態列下,並且不遮蓋狀態列的資訊。最後寫了一種可遮蓋掉整個狀態列 主要是通過setStatusBar來實現此功能,分為黑色跟白色兩種,白色即為預設顏色,不寫就行。 使用的

(轉)Android中系統狀態的隱藏顯示

Android中系統狀態列的隱藏和顯示 尤其視訊類APP,需要實現切換到橫屏後,隱藏系統狀態列,全屏顯示,以實現看更大畫面的視訊。當切換回豎屏後,又顯示狀態列。那麼如何實現呢? 網上流傳著很多種做法。比如:  1、在AndroidManifest.xml檔案中修改theme為andro

Android標題狀態圖示文字顏色背景動態變化

android中沉浸式狀態列的文章已經滿大街了,可是在實現某些效果時,還是得各種搜尋,測試一通後,最後還常常滿足不了要求,即使好不容易在一部手機上滿足了需求,放在另外一手機上,發現效果還各種不適配。今天把自己這幾天學到的關於沉浸式狀態列知識進行總結下。 問題 比如我想實現

設定miui狀態黑白圖示顏色

public static void setStatusBarDarkMode(boolean darkmode, Activity activity) { //前版本miui設定顏色

MarkDown設定字型顏色背景顏色

Markdown是一種可以使用普通文字編輯器編寫的標記語言,通過類似HTML的標記語法,它可以使普通文字內容具有一定的格式。 但是最近在使用的過程發現了它相比於一般的視覺化編輯器的缺點: 沒法設定顏色,包括字型顏色和背景顏色 查閱了一下資料,發