カスタムのロック画面を作成しています。
ロック画面は、画面が消えるまでに起動するアクティビティです。
ただし、アクティビティを透明と全画面の両方にすることはできません。
ステータスバーが表示され続けます。
マニフェストで私が行うことは次のとおりです。
<activity Android:name=".activities.LockScreenActivity" Android:theme="@Android:style/Theme.Translucent.NoTitleBar.Fullscreen"/>
また、アクティビティのonCreateにこれらのエクストラを追加しています。
requestWindowFeature(Window.FEATURE_NO_TITLE);
setContentView(R.layout.lock_screen);
getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN,WindowManager.LayoutParams.FLAG_FULLSCREEN);
しかし、それはうまくいかないようです:|
どうして?
onCreate()からコードを削除します。マニフェストファイルでこれを使用します。
Android:theme="@Android:style/Theme.Translucent.NoTitleBar.Fullscreen"
それ以外の場合は、要件に応じてテーマを作成します。
SetContentViewの前にフラグを設定する必要があります。そうすれば正常に機能するはずです。
requestWindowFeature(Window.FEATURE_NO_TITLE);
getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN,WindowManager.LayoutParams.FLAG_FULLSCREEN);
setContentView(R.layout.lock_screen);
これが リンク (Android 4.1以降のステータスバーを非表示にする)。
View decorView = getWindow().getDecorView();
// Hide the status bar.
int uiOptions = View.SYSTEM_UI_FLAG_FULLSCREEN;
decorView.setSystemUiVisibility(uiOptions);
// Remember that you should never show the action bar if the
// status bar is hidden, so hide that too if necessary.
ActionBar actionBar = getActionBar();
actionBar.hide();
Android 4.0以下:
<application
...
Android:theme="@Android:style/Theme.Holo.NoActionBar.Fullscreen" >
...
</application>
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
// If the Android version is lower than Jellybean, use this call to hide
// the status bar.
if (Build.VERSION.SDK_INT < 16) {
getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN,
WindowManager.LayoutParams.FLAG_FULLSCREEN);
}
setContentView(R.layout.activity_main);
}