前言
这是仿微信图库效果的一部分,即查看大图是,单击屏幕改变titlebar和bottombar以及状态栏的显示状态。
效果
状态栏
系统允许更改状态栏的显示状态,此处的效果要求是状态栏隐藏,但页面布局不改变。最后参考了SystemUiHelper和Android 自动隐藏虚拟按键和沉浸式状态栏以及Android动态显示和隐藏状态栏完成了这个效果。
这里有一点需要注意,在状态栏隐藏后,状态栏的位置会有留白,所以需要将window的背景改成自己需要的颜色。
主要用到了下面的代码
/**
* 隐藏状态栏 不更改布局 针对api14以上的版本
* @param window
*/
public static void hideStatusBar(Window window){
int uiOptions = View.SYSTEM_UI_FLAG_LAYOUT_STABLE| //保持布局状态
// //全屏
View.SYSTEM_UI_FLAG_FULLSCREEN;
//对导航栏的显示的弱化
// if (Build.VERSION.SDK_INT>=19){
// uiOptions |= 0x00001000;
// }else{
// uiOptions |= View.SYSTEM_UI_FLAG_LOW_PROFILE;
// }
window.getDecorView().setSystemUiVisibility(uiOptions);
}
/**
* 显示状态栏 针对api14以上的版本
* @param window
*/
public static void showStatusBar(Window window){
window.getDecorView().setSystemUiVisibility(View.SYSTEM_UI_FLAG_VISIBLE);
}
//不设背景则在状态栏隐藏之后会有留白
getWindow().setBackgroundDrawableResource(R.drawable.shape_gallery_statusbar);