APP开发实战166-全屏模式的功能设计

来源:互联网 发布:双立人珐琅铸铁锅 知乎 编辑:程序博客网 时间:2024/06/04 19:18

30.14 全屏模式的功能设计

    APP的许多场景需要全屏展示内容,如播放视频、浏览图片和阅读书籍时等场景。从Android4.4开始,Android系统提供了2种方案让APP进入全屏模式:Lean Back和Immersive。使用这2种方案时,Action Bar、Status Bar和Navigation Bar都会被隐藏,不同之处在于让它们再重新显示出来的操作方式。

30.14.1 Lean Back

    这种方案常用于用户不会与屏幕大量交互的场景,如用户播放视频时。使用这种方法,如用户需要显示Action Bar、Status Bar和Navigation Bar时,点击屏幕的任何地方,Action Bar、Status Bar和Navigation Bar都会被显示。示意图如下:

实现代码:

View flagsView =getWindow().getDecorView();

int uiOptions = flagsView.getSystemUiVisibility();
uiOptions |= View.SYSTEM_UI_FLAG_FULLSCREEN;
uiOptions |= View.SYSTEM_UI_FLAG_HIDE_NAVIGATION;
uiOptions &= ~View.SYSTEM_UI_FLAG_IMMERSIVE;
flagsView.setSystemUiVisibility(uiOptions);

30.14.2 Immersive

    这种方案常用于用户与屏幕大量交互的场景,如玩游戏、在画廊中浏览图片或阅读书籍时。使用这种方法,如用户需要显示Action Bar、Status Bar和Navigation Bar时,需要使用手指从屏幕底部向上滑动,或从屏幕顶部向下滑动,这样Action Bar、Status Bar和Navigation Bar才会被显示。示意图如下:

这种方案可以避免用户无意中碰到屏幕,就退出全屏模式的情况发生。但这样可能导致有些用户不知道怎样退出全屏模式,所以最好在用户使用APP第一次进入全屏模式时,给用户提示怎样才能退出全屏模式。

实现代码:

View flagsView =getWindow().getDecorView();

int uiOptions = flagsView.getSystemUiVisibility();
uiOptions |= View.SYSTEM_UI_FLAG_FULLSCREEN;
uiOptions |= View.SYSTEM_UI_FLAG_HIDE_NAVIGATION;
uiOptions |= View.SYSTEM_UI_FLAG_IMMERSIVE;
flagsView.setSystemUiVisibility(uiOptions);

0 0