您的位置:首页 > 移动开发 > Android开发

Android 状态栏沉浸

2016-09-27 14:19 197 查看
在开发过程用到的一些基础的功能,保存一下,就不用再到处乱找了!

现在很多的项目的状态栏都要求标题和状态栏的颜色一样,我的项目中也是,所以今天写一下

public void setImmerseStatue(View view) {
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.KITKAT) {
getWindow().addFlags(WindowManager.LayoutParams.FLAG_TRANSLUCENT_STATUS);
//透明导航栏
//getWindow().addFlags(WindowManager.LayoutParams.FLAG_TRANSLUCENT_NAVIGATION);
int statusBarHeight = getStatusBarHeight(this.getBaseContext());
view.setPadding(0, statusBarHeight, 0, 0);
}
}
/**
* 用于获取状态栏的高度。 使用Resource对象获取(推荐这种方式)
*
* @return 返回状态栏高度的像素值。
*/
public static int getStatusBarHeight(Context context) {
int result = 0;
int resourceId = context.getResources().getIdentifier("status_bar_height", "dimen",
"android");
if (resourceId > 0) {
result = context.getResources().getDimensionPixelSize(resourceId);
}
return result;
}

如图:



这两个方法你可以自己定义一个基类,然后调用就行,就不用一遍一遍的调用了,

在调用的时候你调用
setImmerseStatue(View view),传的这个参数view就是你定义xml根布局的view,这个根布局必须定义它的背景才能用,切记!这点很重要!
其他的方法也能用,我也没有找,没有对比,希望喜欢,有用!
其他相关的可以看看这个,这个写的很好
http://devnote.info/2016/08/08/View%E9%A1%B6%E9%83%A8%E6%82%AC%E6%B5%AE%E5%AE%9E%E7%8E%B0/

                                            
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息