首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >全屏应用程序android

全屏应用程序android
EN

Stack Overflow用户
提问于 2013-08-29 13:43:43
回答 8查看 50.2K关注 0票数 13

我有两个问题:

  1. 如何在全屏上运行我的应用程序?
  2. 视频播放器如何在全屏上运行视频。

我已经试过很多次了,还在为实现这一目标而奋斗,但却找不到解决办法。

我找到的解决方案清单,但它们没有满足我的要求。

  • 这只隐藏通知栏。 requestWindowFeature(Window.FEATURE_NO_TITLE); ( getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN,WindowManager.LayoutParams.FLAG_FULLSCREEN);
  • 也只隐藏通知栏。 android:theme="@android:style/Theme.NoTitleBar.Fullscreen"> android:label="@string/app_name“
  • 它低轮廓导航栏,而不是隐藏它。 getWindow().getDecorView().setSystemUiVisibility(View.SYSTEM_UI_FLAG_LOW_PROFILE);
  • 对我的活动没有影响。 anyView.setSystemUiVisibility(View.SYSTEM_UI_FLAG_HIDE_NAVIGATION);

请注意:

  • 我说的不是生根设备,所以请提供那些解决方案,可以工作,而不生根一个设备。
  • 我不是说只隐藏通知栏,而是通过隐藏导航栏和通知栏来实现全屏。
  • 我指的是果冻豆api 4.1或大于4.1版本的android。
  • 请用密码回答。

经过我的研究和你的回答,我得到了这样的结论:

但是我的应用程序应该是这样的,没有导航栏:

我不想在我的应用程序中看到系统导航栏。

EN

回答 8

Stack Overflow用户

发布于 2013-08-31 02:13:09

我不知道你在追求什么,但下面隐藏了通知栏和软导航键(如在Google设备上看到的那样),所以这个应用程序本质上是“全屏”。

Edit2

在Android4.4 (API 19)中,谷歌引入了新的沉浸式模式,它可以隐藏状态&导航栏,并允许真正的全屏用户界面。

代码语言:javascript
运行
复制
// This snippet hides the system bars.
private void hideSystemUI() {
    // Set the IMMERSIVE flag.
    // Set the content to appear under the system bars so that the content
    // doesn't resize when the system bars hide and show.
    mDecorView.setSystemUiVisibility(
                View.SYSTEM_UI_FLAG_LAYOUT_STABLE
              | View.SYSTEM_UI_FLAG_LAYOUT_HIDE_NAVIGATION
              | View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN
              | View.SYSTEM_UI_FLAG_HIDE_NAVIGATION // hide nav bar
              | View.SYSTEM_UI_FLAG_FULLSCREEN // hide status bar
              | View.SYSTEM_UI_FLAG_IMMERSIVE);
}

// This snippet shows the system bars. It does this by removing all the flags
// except for the ones that make the content appear under the system bars.
private void showSystemUI() {
    mDecorView.setSystemUiVisibility(
               View.SYSTEM_UI_FLAG_LAYOUT_STABLE
             | View.SYSTEM_UI_FLAG_LAYOUT_HIDE_NAVIGATION
             | View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN);
}

参考资料:

https://developer.android.com/training/system-ui/immersive.html

编辑:

使用软Nav键在Android4.3 (API 18)和Android4.1 (API 16)上进行测试。

代码语言:javascript
运行
复制
@Override
protected void onCreate(Bundle b) {
    super.onCreate(b);

    setContentView(R.layout.main);

    int mUIFlag = View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN
                | View.SYSTEM_UI_FLAG_LAYOUT_HIDE_NAVIGATION
                | View.SYSTEM_UI_FLAG_LAYOUT_STABLE
                | View.SYSTEM_UI_FLAG_LOW_PROFILE
                | View.SYSTEM_UI_FLAG_FULLSCREEN
                | View.SYSTEM_UI_FLAG_HIDE_NAVIGATION;

    getWindow().getDecorView().setSystemUiVisibility(mUIFlag);
}

有关http://developer.android.com/reference/android/view/View.html#setSystemUiVisibility(int)的更多信息,请阅读

票数 30
EN

Stack Overflow用户

发布于 2014-10-02 12:39:17

-To隐藏状态栏:

我为这个问题找到了一个很好的解决方案,将每个活动theme & windowSoftInputMode设置为以下值:

代码语言:javascript
运行
复制
<activity   android:name=".MyActivity"
            android:theme="@android:style/Theme.NoTitleBar.Fullscreen" 
            android:windowSoftInputMode="adjustResize">  <!-- theme : to set the activity to a full screen mode without a status bar(like in some games) -->
</activity>                                              <!-- windowSoftInputMode : to resize the activity so that it fits the condition of displaying a softkeyboard -->

有关更多信息,请参阅这里

-To隐藏通知栏:

有两种方式:

1-将您的设备根目录化,然后在adb window command中打开设备,然后运行以下命令:

代码语言:javascript
运行
复制
 adb shell >
 su >
 pm disable com.android.systemui >

要使它返回,只需做同样的操作,但将disable更改为enable

2-将以下行添加到设备的build.prop文件的末尾:

代码语言:javascript
运行
复制
qemu.hw.mainkeys = 1

那就把它拿回来就行了。

如果您不知道如何编辑build.prop文件:

  • 在您的设备上下载EsExplorer并搜索build.prop,然后更改其读写权限,最后添加行。
  • 下载一个专门的build.prop编辑器应用程序,比如build.propEditor
  • 或者参考这种联系
票数 2
EN

Stack Overflow用户

发布于 2014-02-08 19:18:09

在新的Android4.4上,您应该添加以下一行:

代码语言:javascript
运行
复制
View.SYSTEM_UI_FLAG_IMMERSIVE;

因此,新的工作解决方案(至少在nexus4 4.4.2上)是

代码语言:javascript
运行
复制
final int mUIFlag = 
        View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN
              | View.SYSTEM_UI_FLAG_LAYOUT_HIDE_NAVIGATION
              | View.SYSTEM_UI_FLAG_LAYOUT_STABLE
              | View.SYSTEM_UI_FLAG_LOW_PROFILE
              | View.SYSTEM_UI_FLAG_FULLSCREEN
              | View.SYSTEM_UI_FLAG_HIDE_NAVIGATION
              | View.SYSTEM_UI_FLAG_IMMERSIVE;

身临其境不会工作,虽然它与其他标志结合工作。有关详细信息,请参阅文档。然后在活动中添加此设置的激活,如前面所示(我只是为了一致性而添加)。

代码语言:javascript
运行
复制
getWindow().getDecorView().setSystemUiVisibility(mUIFlag);
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/18512688

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档