为了账号安全,请及时绑定邮箱和手机立即绑定

了解真正的“沉浸式”模式

标签:
Android

玩游戏和看视频就是最典型的“沉浸式”模式的效果,将状态栏、ActionBar、导航栏等系统元素全部隐藏,只留下主体内容部分。

步骤:

1、新建一个空的项目,修改布局文件中的代码

[代码]xml代码:

?

01

02

03

04

05

06

07

08

09

10

11

12

13

<?xml version="1.0" encoding="utf-8"?>

<RelativeLayout

    xmlns:android="http://schemas.android.com/apk/res/android"

    xmlns:tools="http://schemas.android.com/tools"

    android:layout_width="match_parent"

    android:layout_height="match_parent">

 

    <ImageView

        android:layout_width="match_parent"

        android:layout_height="match_parent"

        android:class="lazyload" src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAYAAAAfFcSJAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsQAAA7EAZUrDhsAAAANSURBVBhXYzh8+PB/AAffA0nNPuCLAAAAAElFTkSuQmCC" data-original="@mipmap/ver_bg"

        android:scaleType="centerCrop"/>

</RelativeLayout>

2、修改MainActivity中的代码

方法1

[代码]java代码:

?

01

02

03

04

05

06

07

08

09

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

import android.graphics.Color;

import android.os.Build;

import android.os.Bundle;

import android.support.v7.app.ActionBar;

import android.support.v7.app.AppCompatActivity;

import android.view.View;

 

public class MainActivity   extends AppCompatActivity   {

 

    @Override

    protected void onCreate(Bundle savedInstanceState) {

        super.onCreate(savedInstanceState);

        setContentView(R.layout.activity_main);

        immerseView();

    }

 

    private void immerseView() {

        if (Build.VERSION.SDK_INT >= 21) {

            View   decorView = getWindow().getDecorView();

            int option = View.SYSTEM_UI_FLAG_FULLSCREEN |   View.SYSTEM_UI_FLAG_LAYOUT_STABLE;

            decorView.setSystemUiVisibility(option);

            getWindow().setNavigationBarColor(Color.TRANSPARENT);//将导航栏颜色设置为透明

            getWindow().setStatusBarColor(Color.TRANSPARENT);//将状态栏颜色设置为透明

        }

        ActionBar   actionBar = getSupportActionBar();

        actionBar.hide();//隐藏ActionBar

    }

}

方法2、重写onWindowFocusChanged方法

[代码]java代码:

?

01

02

03

04

05

06

07

08

09

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

import android.os.Build;

import android.os.Bundle;

import android.support.v7.app.AppCompatActivity;

import android.view.View;

 

public class MainActivity   extends AppCompatActivity   {

 

    @Override

    protected void onCreate(Bundle savedInstanceState) {

        super.onCreate(savedInstanceState);

        setContentView(R.layout.activity_main);

    }

 

    @Override

    public void onWindowFocusChanged(boolean hasFocus) {

        super.onWindowFocusChanged(hasFocus);

        if (hasFocus &&   Build.VERSION.SDK_INT >= 19) {

            View   decorView = getWindow().getDecorView();

            decorView.setSystemUiVisibility(

                    View.SYSTEM_UI_FLAG_LAYOUT_STABLE

                    |   View.SYSTEM_UI_FLAG_HIDE_NAVIGATION

                    |   View.SYSTEM_UI_FLAG_FULLSCREEN

                    |   View.SYSTEM_UI_FLAG_LAYOUT_HIDE_NAVIGATION

                    |   View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN

                    |   View.SYSTEM_UI_FLAG_IMMERSIVE_STICKY

            );

        }

    }

}

竖屏模式

5bb86919000190d103280577.jpg

游戏的横屏模式

修改AndroidManifest.xml文件

[代码]xml代码:

?

1

2

3

4

5

6

7

<activity android:name=".MainActivity" android:screenOrientation="landscape">

            <intent-filter>

                <action android:name="android.intent.action.MAIN"/>

 

                <category android:name="android.intent.category.LAUNCHER"/>

            </intent-filter>

        </activity>

 

5bb8692400014a4505800328.jpg

此时,已可实现真正的“沉浸式”效果,界面默认情况下是全屏的,状态栏和导航栏都不会显示,当我们需要时,只需要在屏幕向下拉或屏幕右侧向右拉即可显示相应的状态栏和导航栏,过一段时间如果没有任何操作,状态栏和导航栏又会自动隐藏起来,重新回到全屏状态。

原文链接:http://www.apkbus.com/blog-844891-61495.html

点击查看更多内容
TA 点赞

若觉得本文不错,就分享一下吧!

评论

作者其他优质文章

正在加载中
  • 推荐
  • 评论
  • 收藏
  • 共同学习,写下你的评论
感谢您的支持,我会继续努力的~
扫码打赏,你说多少就多少
赞赏金额会直接到老师账户
支付方式
打开微信扫一扫,即可进行扫码打赏哦
今天注册有机会得

100积分直接送

付费专栏免费学

大额优惠券免费领

立即参与 放弃机会
意见反馈 帮助中心 APP下载
官方微信

举报

0/150
提交
取消