Android4.4以上才支持,也就是API 19以上, 下面直接上代码
参考了git上的一个项目:https://github.com/jiangqqlmj/FastDev4Android
核心代码就是这些,
/**
* 设置沉浸式状态栏
*/
protected void setImmergeState() {
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.KITKAT) {
//透明状态栏
getWindow().addFlags(WindowManager.LayoutParams.FLAG_TRANSLUCENT_STATUS);
//透明导航栏,有虚拟键的下面的需要注释掉,不然效果感人
//getWindow().addFlags(WindowManager.LayoutParams.FLAG_TRANSLUCENT_NAVIGATION);
LinearLayout linear_bar = (LinearLayout) findViewById(R.id.linear_bar);
linear_bar.setVisibility(View.VISIBLE);
int statusHeight = getStatusBarHeight();
LinearLayout.LayoutParams params = (LinearLayout.LayoutParams) linear_bar.getLayoutParams();
params.height = statusHeight;
linear_bar.setLayoutParams(params);
}
}
/**
* 用于获取状态栏的高度。 使用Resource对象获取
*
* @return 返回状态栏高度的像素值。
*/
public int getStatusBarHeight() {
int result = 0;
int resourceId = getResources().getIdentifier("status_bar_height", "dimen",
"android");
if (resourceId > 0) {
result = getResources().getDimensionPixelSize(resourceId);
}
return result;
}
<!-- 用来填充状态栏==========-->
<LinearLayout
android:id="@+id/linear_bar"
android:layout_width="fill_parent"
android:layout_height="1dp"
android:background="#3289ff"
android:orientation="vertical"
android:visibility="gone"
>
</LinearLayout>
如果有问题的可以看项目用的工具是Android Studio,下面是项目下载地址:
http://download.csdn.net/detail/qq137464739/9385115