全屏应用程序android

Ham*_*mad 13 android fullscreen android-activity android-fullscreen

我有两个问题:

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

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

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

  • 这只隐藏了通知栏.

    requestWindowFeature(Window.FEATURE_NO_TITLE);
    
    Run Code Online (Sandbox Code Playgroud)

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

  • 也只隐藏通知栏

    android:label="@string/app_name"
    android:theme="@android:style/Theme.NoTitleBar.Fullscreen">
    
    Run Code Online (Sandbox Code Playgroud)
  • 它低配置导航栏没有隐藏它.

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

  • 对我的活动没有影响.

    anyView.setSystemUiVisibility(View.SYSTEM_UI_FLAG_HIDE_NAVIGATION);

注意:

  • 我不是在谈论生根设备,所以请提供那些可以在不生根设备的情况下工作的解决方案.
  • 我不是说只隐藏通知栏,而是隐藏导航栏和通知栏全屏.
  • 我在谈论果冻豆API 4.1或大于4.1版本的android
  • 请用代码给出答案.

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

在此输入图像描述

但我的应用程序看起来应该没有导航栏:

在此输入图像描述

我不希望我的应用程序中显示系统导航栏.

kad*_*rud 29

我不确定你追求的是什么,但以下隐藏了通知栏和软导航键(如Google Nexus设备上所示),因此该应用基本上是"全屏".

EDIT2

在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);
}
Run Code Online (Sandbox Code Playgroud)

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

编辑:
使用Soft Nav键在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);
}
Run Code Online (Sandbox Code Playgroud)

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


Omi*_*iva 0

我制作了 2 种布局,一种用于常规尺寸,一种用于全屏,在全屏内我获取设备尺寸并将其分配给视频播放器

Display display = getWindowManager().getDefaultDisplay();
Point size = new Point();
display.getRealSize(size);
int w=size.x;
int h=size.y;
videoPlayer.setFixedSize(w, h);
Run Code Online (Sandbox Code Playgroud)