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...