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

これでフルスクリーン処理はとりあえず完成です。

メソッドで作っておいた方が色々なところで使いやすいと思いますよ。

추가 이미지




댓글

댓글 추가

user-symbol

문의하기

비즈니스 개발자를 위한 최신 정보를 원하십니까? 소스 코드 프로젝트에 대한 PieceX 커뮤니티의 요구사항을 알아보세요. PieceX의 최신 무료 커뮤니티 코드를 빠르게 알려드립니다.