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);
ご了承ください:
私の研究とあなたの答えの後、私はこれを得ています:
しかし、私のアプリはナビゲーションバーなしでこのように見えるはずです:
システムナビゲーションバーをアプリに表示したくない。
あなたが何を望んでいるのかわかりませんが、以下は通知バーとソフトナビゲーションキー(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) をご覧ください。
-ステータスバーを非表示にするには:
その問題に対して私が見つけた素晴らしい解決策は、各アクティビティtheme
&windowSoftInputMode
を次の値に設定することです。
<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 >
それを取り戻すには、同じことをしますが、disable
をenable
に変更します。
2-次の行をデバイスのbuild.propファイルの最後に追加します。
qemu.hw.mainkeys = 1
その後、元に戻すには削除します。
build.propファイルの編集方法がわからない場合:
新しい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);
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)
{
}
}
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);
上記のコードは私のアプリで完璧に機能しました。
レギュラーサイズ用とフルスクリーン用とフルスクリーン用の2つのレイアウトを作成しました。デバイスサイズを取得し、ビデオプレーヤーに割り当てます。
Display display = getWindowManager().getDefaultDisplay();
Point size = new Point();
display.getRealSize(size);
int w=size.x;
int h=size.y;
videoPlayer.setFixedSize(w, h);
ビデオプレーヤーは、
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);
これがお役に立てば幸いです!