- masatoshi
- Feb 27, 2018
AndroidStudioフルスクリーン
バーを全て決してフルスクリーンにする
フルスクリーン処理はしてもしなくてもアプリは作れますが、どうせだったら大きい画面で作りたい、と言う人もいるでしょう。
ちなみにフルスクリーンにすると、機種によって、挙動が結構違うのでデバッグ作業が大変になるかもしれません。
それでもとりあえずパッと作りたい人のために簡単な方法を紹介します。
タイトルバーを消す
これは簡単です、プロジェクト内の
( app/res/values/styles.xml ) を開きます。
<resources> <!-- Base application theme. --> <style name="AppTheme" parent="Theme.AppCompat.Light.DarkActionBar"> <!-- Customize your theme here. --> <item name="colorPrimary">@color/colorPrimary</item> <item name="colorPrimaryDark">@color/colorPrimaryDark</item> <item name="colorAccent">@color/colorAccent</item> </style> </resources>
style ~ の行にある parent属性に注目してください。
"Theme.AppCompat.Light.DarkActionBar"の部分がタイトルバーに関する記述になります。
詳しいことは省きますが簡単に説明すると、Light → 背景明るい色にして DarkActionBar → バーは暗い色で
てな感じの命令になってます、なのでバーの部分を
<resources> <!-- Base application theme. --> <style name="AppTheme" parent="Theme.AppCompat.Light.NoActionBar"> <!-- Customize your theme here. --> <item name="colorPrimary">@color/colorPrimary</item> <item name="colorPrimaryDark">@color/colorPrimaryDark</item> <item name="colorAccent">@color/colorAccent</item> </style> </resources>
NoActionBar → バー無しで、と命令すればタイトルバーを消すことができます。
システム・ナビゲーションバーを消す
//バーを非表示にするメソッド private void fullScreen() { // バージョンで分岐する if ( Build.VERSION.SDK_INT >= Build.VERSION_CODES.KITKAT ) { findViewById(R.id.main_rel_top) .setSystemUiVisibility(View.SYSTEM_UI_FLAG_FULLSCREEN | View.SYSTEM_UI_FLAG_HIDE_NAVIGATION | View.SYSTEM_UI_FLAG_IMMERSIVE_STICKY ); } else if ( Build.VERSION.SDK_INT >= Build.VERSION_CODES.JELLY_BEAN ) { findViewById(R.id.main_rel_top).setSystemUiVisibility(View.SYSTEM_UI_FLAG_FULLSCREEN | View.SYSTEM_UI_FLAG_HIDE_NAVIGATION); } else { findViewById(R.id.main_rel_top).setSystemUiVisibility( View.SYSTEM_UI_FLAG_HIDE_NAVIGATION ); } }
フルスクリーン処理はバージョンごとに違うため必要に応じて処理を変えて行かなければなりません。
現在は4.0.~ Icecream はほとんどないですので JellyBean あたりからフォローできたらいいと思います。そのうちここの記述も必要なくなるかもしれません。
ですが、Huawei の機種だけなぜかこの処理を行なってもフルスクリーンにならないんです。
onCreateに処理を加えることで改善されるのでgetWindowを追加してみてください。
protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); //この1行を足す、色々調べたが結局の所、CPUに癖があるからだと思われる。 getWindow().addFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN); setContentView(R.layout.activity_main);
これでフルスクリーン処理はとりあえず完成です。
メソッドで作っておいた方が色々なところで使いやすいと思いますよ。
Comments
Add your comment