Android - Honeycomb或ICS完全全屏

时间:2012-03-30 01:21:56

标签: java android user-interface

ICS或Honeycomb有没有办法完全全屏?我希望系统UI完全消失!目前我所做的是:

    requestWindowFeature(Window.FEATURE_NO_TITLE);
    getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN, 
                            WindowManager.LayoutParams.FLAG_FULLSCREEN);

    setContentView(R.layout.main);
    getWindow().getDecorView().setSystemUiVisibility(View.STATUS_BAR_HIDDEN);

但这会导致状态栏被真正暗淡的点所取代!我希望它完全消失!让我们说例如我想播放视频或显示占据整个屏幕的图片。我没关系,状态栏会回来进行用户交互,但是当没有用户交互时,我需要它完全消失。

使用上面的代码。我得到以下看法:

Status bar hidden replaced by dim dots

我希望昏暗的点也消失,我的视频/图像完全全屏。

4 个答案:

答案 0 :(得分:3)

这在Honeycomb中是不可能的,但已在API v14中添加。使用:

getWindow().getDecorView().setSystemUiVisibility(View.SYSTEM_UI_FLAG_HIDE_NAVIGATION);

在这里查看更详细的答案(虽然我会使用Build.Version.SDK_INT检查而不是建议的基于反射的检查来获得支持):

Hide ICS back home task switcher buttons

答案 1 :(得分:1)

我的最后一个信息是您可以使用黑色胶带覆盖它。这是Chet Haase给出的建议。从53分钟开始观看this google IO 2011 session Q&A

答案 2 :(得分:1)

正如上一张海报建议的那样,如果没有root你的设备并执行一些有点脏的进程终止操作,这是完全不可能的。原因是新硬件(例如平板电脑)可能没有用于导航的硬件按钮 - 因此通过隐藏这些按钮,用户将无法做出他们应该保证能够做的事情,如进入主屏幕或访问设备信息。无论您是否同意这种推理,API都是如此。

答案 3 :(得分:0)

你想要SYSTEM_UI_FLAG_HIDE_NAVIGATION。请记住,由于软导航按钮是设备体验的关键,因此只有隐藏按钮才能进行一些用户交互。如果你想永久隐藏它们,那么生根设备(正如其他人建议的那样)是唯一的方法。

标志是从冰淇淋三明治,API 14开始添加的。在14之前,在具有类似功能的Honeycomb,API 11中添加了标志STATUS_BAR_HIDDEN。在此之前,软导航按钮不存在,因此全屏模式完全由Themes处理(具体为Theme.NoTitleBar.Fullscreen)。

使用:

if( Build.VERSION.SDK_INT >= Build.VERSION_CODES.ICE_CREAM_SANDWICH )
    mBaseLayout.setSystemUiVisibility( View.SYSTEM_UI_FLAG_HIDE_NAVIGATION );
else if( Build.VERSION.SDK_INT >= Build.VERSION_CODES.HONEYCOMB )
    mBaseLayout.setSystemUiVisibility( View.STATUS_BAR_HIDDEN );