android 实现透明状态栏
主要使用https://github.com/jgilfelt/SystemBarTint这个开源库
1 ,导入SystemBarTintManager类
2 ,BaseFragmentActivity的onCreate添加如下代码:
// 修改状态栏颜色,4.4+生效 if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.KITKAT) { setTranslucentStatus(); } SystemBarTintManager tintManager = new SystemBarTintManager(this); tintManager.setStatusBarTintEnabled(true); tintManager.setStatusBarTintResource(R.color.status_bar_bg);//通知栏所需颜色,颜色内容在colors.xml文件里面定义
@TargetApi(19) protected void setTranslucentStatus() { Window window = getWindow(); // Translucent status bar window.setFlags( WindowManager.LayoutParams.FLAG_TRANSLUCENT_STATUS, WindowManager.LayoutParams.FLAG_TRANSLUCENT_STATUS); // Translucent navigation bar window.setFlags( WindowManager.LayoutParams.FLAG_TRANSLUCENT_NAVIGATION, WindowManager.LayoutParams.FLAG_TRANSLUCENT_NAVIGATION); }
3 ,特别注意如下代码,否则显示布局会出现问题:
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent" android:background="#f1f1f1" android:clipToPadding="true" android:fitsSystemWindows="true" >
更多使用方法可以参考:http://www.jcodecraeer.com/a/opensource/2014/1222/2198.html