android - 全屏应用安卓

标签 android android-activity fullscreen android-fullscreen

我有两个问题:

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

我已经尝试了很多,但仍在努力实现这一目标,但找不到解决方案。

我找到的解决方案列表,但它们不满足我的要求

  • 这只会隐藏通知栏。

    requestWindowFeature(Window.FEATURE_NO_TITLE);
    

    getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN,WindowManager.LayoutParams.FLAG_FULLSCREEN);

  • 也只隐藏通知栏

    android:label="@string/app_name"
    android:theme="@android:style/Theme.NoTitleBar.Fullscreen">
    
  • 低调导航栏而不是隐藏它。

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

  • 对我的 Activity 没有影响。

    anyView.setSystemUiVisibility(View.SYSTEM_UI_FLAG_HIDE_NAVIGATION);

注意:

  • 我不是在谈论对设备进行 root 操作,因此请提供那些无需对设备进行 root 操作即可工作的解决方案。
  • 我不是在谈论只隐藏通知栏,而是通过同时隐藏导航栏和通知栏来实现全屏显示。
  • 我说的是 jelly beans api 4.1 或高于 4.1 的 android 版本
  • 请用代码给出答案。

在我的研究和您的回答之后,我得到了这个:

enter image description here

但是我的应用在没有导航栏的情况下应该是这样的:

enter image description here

我不希望系统导航栏在我的应用中可见。

最佳答案

我不确定您想要什么,但下面隐藏了通知栏和软导航键(如在 Google Nexus 设备上看到的那样),因此该应用基本上是“全屏”。

编辑2

在 Android 4.4 (API 19) 中,谷歌引入了新的沉浸式模式,它可以隐藏状态和导航栏,并允许真正的全屏 UI。

// 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

编辑:
使用软导航键在 Android 4.3 (API 18) 和 Android 4.1 (API 16) 上测试。

@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)

关于android - 全屏应用安卓,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18512688/

相关文章:

android - Roboguice - 从带参数的构造函数实例化对象

android - Android 中使用多个数据库表时的代码设计

android - 带有 RESULT_OK 的 startActivityForResult 和 setResult 不起作用

javascript - 带 Owl Carousel 的全屏 slider

Android 开发 - 使用变量打开原始文件或 Assets 文件

android - 算法数据同步(SQLite到在线数据库)

java - Android - 如何将 Activity 中的值保存到java类

java - Android:避免大量 "dummy"单 fragment Activity ?

objective-c - 如何 : Is NSWindow In FullScreen Mode (Lion) AND Enabling/Disabling?

c++ - 使用 openGL 在 SDL2 中全屏显示一个窗口