實現Android狀態列變色(純色或者漸變色)

2021-10-01 08:12:13 字數 1271 閱讀 5382

android開發中為了保證顯示一致性,可能需要調整statusbar的背景色。android 5.0開始只需要修改styles.xml檔案中colorprimarydark的顏色值就可以修改statusbar背景色。但是colorprimarydark只能設定固定色值的顏色,而且設定主題的話也是統一所有頁面的statusbar都是一樣的,要是某單一頁面要單獨設定statusbar背景色又要在styles.xml重複寫然後設定,有點麻煩,而且最關鍵的是無法設定漸變色。

這樣的話我們可以在activity的基類baseactivity中增加統一的**:

/**

* 修改狀態列顏色,支援5.0以上版本

*/public

static

void

setstatusbarcolor

(activity activity, int colorid)

}

如果某乙個頁面需要單獨設定statusbar的話,在oncreate()方法中直接呼叫上面的方法,把顏色值傳進去就ok了。

上面說的是單一顏色的,現在說說漸變顏色的,漸變顏色的話我們一般是在drawable資料夾裡面建乙個shape的資源檔案,可能會有多種顏色,所以上面的方法顯然不合適了,看下面:

//改變狀態列顏色

private

void

setthisstatusbarcolor()

});}

private

void

initstatusbar()

最後面傳入自己寫好的drawable資源檔案(我這裡是r.drawable.shape_bg_gradient_blue_no_corner),畢竟需要的顏色不一樣,哪個頁面需要呼叫就好了。

<

?xml version=

"1.0" encoding=

"utf-8"

?>

"">

<

!-- 漸變 預設從左到右, angle:

270表示從上到下,180表示從右到左 --

>

android:endcolor=

"#af76eb"

android:startcolor=

"#7d76e1"

/>

<

/shape>

注:上面的方法只對android5.0以上有效,4.4以下的還需求適配的話自己網上看看其他的部落格吧,畢竟現在市場上的手機很少有4.4以下的了。

Android漸變色狀態列和沉浸狀態列

1 專案中需要在開機圖時去掉狀態列 1 實現方法如下 在setcontentview之後設定 去掉狀態列 if build.version.sdk int 21 2 實現效果如下 2 需要改變狀態列顏色為漸變色標 1 實現方法如下 在setcontentview之後設定 設定狀態列顏 getwind...

Android透明狀態列 沉浸式狀態列

注意 android版本 4.4此方法有效 第一步 在activity的布局檔案中,根布局中加入以下第5 7行 第二步 新建類kitkatutils.class package cn.powerthink.djt.utils import android.annotation.suppresslin...

android 狀態列浸透 狀態列半透明

純 設定,不用修改manifest 首先這是主介面.xml 兩種情況 第一種 去掉xml中 style 效果 主介面置頂,可以實現半透明效果 activity oncreat 中 狀態列沉浸,4.4 生效 if build.version.sdk int build.version codes.ki...