web-dev-qa-db-ja.com

フルスクリーンアプリケーションandroid

2つの質問があります。

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

  • 私の活動に影響はありません。

    anyView.setSystemUiVisibility(View.SYSTEM_UI_FLAG_HIDE_NAVIGATION);

ご了承ください:

  • 私はデバイスのルート化について話していないので、デバイスをルート化せずに機能するソリューションを提供してください。
  • 通知バーだけを非表示にするのではなく、ナビゲーションバーと通知バーの両方を非表示にして全画面表示します。
  • 私はゼリービーンズAPI 4.1またはAndroid 4.1以上のバージョンについて話している
  • コードで回答してください。

私の研究とあなたの答えの後、私はこれを得ています:

enter image description here

しかし、私のアプリはナビゲーションバーなしでこのように見えるはずです:

enter image description here

システムナビゲーションバーをアプリに表示したくない。

13
Hamad

あなたが何を望んでいるのかわかりませんが、以下は通知バーとソフトナビゲーションキー(Google Nexusデバイスで見られる)を非表示にします。したがって、アプリは基本的に「フルスクリーン」です。

Edit2

Android 4.4(API 19))Googleは、ステータス(&nvbar)を非表示にし、許可する新しい没入型モードを導入しました真のフルスクリーン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)with Soft Navキー。

@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) をご覧ください。

29
kaderud

-ステータスバーを非表示にするには:

その問題に対して私が見つけた素晴らしい解決策は、各アクティビティthemewindowSoftInputModeを次の値に設定することです。

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

詳細については こちらを参照

-通知バーを非表示にするには:

2つの方法があります:

1-デバイスをルート化して、adb window commandでデバイスを開き、次を実行します。

 adb Shell >
 su >
 pm disable com.Android.systemui >

それを取り戻すには、同じことをしますが、disableenableに変更します。

2-次の行をデバイスのbuild.propファイルの最後に追加します。

qemu.hw.mainkeys = 1

その後、元に戻すには削除します。

build.propファイルの編集方法がわからない場合:

  • デバイスで EsExplorer をダウンロードし、build.propを検索してから、読み取りと書き込みの権限を変更し、最後に行を追加します。
  • build.propEditor のような特殊なbuild.propエディターアプリをダウンロードします。
  • または そのリンク を参照してください。
2
Muhammed Refaat

新しいAndroid 4.4では、次の行を追加する必要があります。

View.SYSTEM_UI_FLAG_IMMERSIVE;

したがって、少なくともnexus4 4.4.2の新しいワーキングソリューションは

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;

没入型だけでは機能しませんが、他のフラグと組み合わせると機能します。詳細についてはドキュメントをご覧ください。次に、前に示したように、アクティビティにこのセットアップのアクティブ化を追加します(一貫性のために追加しています)

getWindow().getDecorView().setSystemUiVisibility(mUIFlag);
1
sivi

Android 4.0>でシステムバーを非表示にできないと思います(タブレットでのみ、できるはずの電話で)

あなたができることは、アイコンを非表示にし、いくつかのボタンを無効にすることです(家を除く全員)

これを試すことができます:

        if (Android.os.Build.VERSION.SDK_INT >= Android.os.Build.VERSION_CODES.ICE_CREAM_SANDWICH) {
        getWindow().getDecorView().setSystemUiVisibility(View.SYSTEM_UI_FLAG_LOW_PROFILE);              

        }

ボタンを無効にする場合:

これは戻るボタン用です。

  public boolean onKeyDown(int keyCode, KeyEvent event) {
    return false;
  }

メニューのこれ:

@Override
public void onWindowFocusChanged(boolean hasFocus) {

        try
        {
           if(!hasFocus)
           {
                Object service  = getSystemService("statusbar");
                Class<?> statusbarManager = Class.forName("Android.app.StatusBarManager");
                Method collapse = statusbarManager.getMethod("collapse");
                collapse .setAccessible(true);
                collapse .invoke(service);
           }
        }
        catch(Exception ex)
        {
        }

}
0
leojg

Androidバージョン:4.2.2-デバイス:Vegaタブレット

Androidアプリでステータスとシステムバーを非表示にし、画面全体を表示するには、次の手順に従いました。

AndroidManifest.xml

   <application
        Android:allowBackup="true"
        Android:icon="@mipmap/ic_launcher"
        Android:label="@string/app_name">
        <activity
            Android:name=".MainActivity"
            Android:label="@string/app_name"
            Android:theme="@Android:style/Theme.NoTitleBar.Fullscreen">
            <intent-filter>
                <action Android:name="Android.intent.action.MAIN" />
                <category Android:name="Android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>
    </application>

MainActivity.Java

super.onCreate(savedInstanceState);
getWindow().getDecorView().setSystemUiVisibility(0x10);
setContentView(R.layout.activity_main);

上記のコードは私のアプリで完璧に機能しました。

0
Vijaysachin

レギュラーサイズ用とフルスクリーン用とフルスクリーン用の2つのレイアウトを作成しました。デバイスサイズを取得し、ビデオプレーヤーに割り当てます。

Display display = getWindowManager().getDefaultDisplay();
Point size = new Point();
display.getRealSize(size);
int w=size.x;
int h=size.y;
videoPlayer.setFixedSize(w, h);
0
Omid Aminiva

ビデオプレーヤーは、

myView.setSystemUiVisibility(View.SYSTEM_UI_FLAG_HIDE_NAVIGATION);

setFlags()の前にsetContentView(View)

これにより、ビデオプレーヤーと同様に、ユーザーの操作にシステムバーが表示されます。

アプリをフルスクリーンで実行するには、Lights Outモードに設定すると、システムボタンがdotsとして表示されます。

ライトアウトモードを使用するには、アクティビティで任意のビューを使用して呼び出します

anyView.setSystemUiVisibility(View.SYSTEM_UI_FLAG_HIDE_NAVIGATION);

ナビゲーションバーを非表示にするには、onStart()でこれを使用して、そのアクティビティに到達するたびにフルスクリーンモードになるようにします

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

これがお役に立てば幸いです!

0
jaymeht