其實要實現透明狀態列只需要給window 設定flags屬性,讓應用的主體內容占用系統狀態列的空間,最後再呼叫window的setstatusbarcolor()方法將狀態列設定成透明色就可以了,而setstatusbarcolor()只有版本大於等於5.0才可以呼叫,適配的時候而有的5.0手機也有不支援此方法的,所以當低於6.0時,我們建立乙個和狀態列大小相等的view,覆蓋在狀態列的位置,然後給這個view設定顏色和透明度。
值得注意的是,設定flags屬性只適用於4.4以上版本,有一部分4.4手機也不支援此方法,所以適配5.0及以上即可。下邊上**:
呼叫的話只需要 lzhstatusbarutils.settranslucentstatusbar(this,null,10);就可以了。public
class
lzhstatusbarutils
///** * 設定透明狀態列版本的狀態列的argb
*@param activity
*@param topview
*@param r
*@param g
*@param b
*@param alpha
*/public
static
void
setargbstatusbar(activity activity, view topview, int r, int g, int b, int alpha)
if (build.version.sdk_int >= build.version_codes.m) else
if (build.version.sdk_int >= build.version_codes.lollipop)
else
if (build.version.sdk_int >= build.version_codes.kitkat)
if (topview != null) }}
///** * 在有fragment的activity中使用
* 注:需要在有狀態列的fragment的最頂端加乙個狀態列大小的view
**@param activity
*@param alpha
*/public
static
void
settranslucentforimageviewinfragment(activity activity, int alpha)
///** * 設定狀態列view的argb,如果找到狀態列view則直接設定,否則建立乙個再設定
**@param activity
*@param statusbaralpha
*/private
static
void
setargbstatusviewtoact(activity activity, int r, int g, int b, int statusbaralpha)
fakestatusbarview.setbackgroundcolor(color.argb(statusbaralpha, r, g, b));
} else }//
/** * 建立和狀態列一樣高的矩形,用於改變狀態列argb
**@param activity
*@param r
*@param g
*@param b
*@param alpha
*@return
*/private
static view createargbstatusbarview(activity activity, int r, int g, int b, int alpha)
///** * 得到statusbar高度
**@param activity
*@return
*/private
static
intgetstatusbarheight(activity activity)
}
知識補充: gif圖上的導航欄漸變效果
因為運用的recyclerview,而recyclerview有乙個滑動監聽方法,不囉嗦上**.
在這個方法進行滑動監聽,根據距離設定透明度。rc.addonscrolllistener(new recyclerview.onscrolllistener() else
}});
安卓4 4實現透明狀態列
首先,我們要知道的是,在安卓5.0.1開始,狀態列就已經是透明的了,所以我們需要手動修改狀態列為透明的安卓版本只有4.4和5.0 4.4以下不支援透明狀態列 先看styles.xml true 以上兩行 只在安卓4.4以上有效 執行 你會發現你的ui元件被狀態列覆蓋了,但不用擔心,只要在你的acti...
安卓沉浸式狀態列
public class statusbarcompat return 當前手機版本為4.4 if build.version.sdk int build.version codes.kitkat build.version.sdk int build.version codes.lollipop ...
安卓頂部 白色狀態列
1 首先在xml檔案中新增控制項 2 建立工具類 判斷使用者手機型號 檢視 使用者機型 public class osutils public static boolean isflyme public static boolean check string rom if textutils.ise...