沉浸式模式

比较好的文章

http://blog.csdn.net/guolin_blog/article/details/51763825

沉浸式模式  是将当前应用处于全屏状态,有较好的用户体验,  例如:海岛奇兵,爱奇艺播放视频....

当然为了省事,,我们可以写一个基类,让需要实现沉浸式的继承 就可以了

======================================================

示例:

MainActivity中:

package com.example.earl.mychenjinshi;

import android.os.Bundle;

public class MainActivity extends BaseActivity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
    }

    @Override
    protected int bindLayout() {
        return R.layout.activity_main;
    }

    @Override
    protected void initView() {

    }

    @Override
    protected void initData() {
        //设置沉浸式状态栏
        setStatus(true);
        //是否显示actionbar
        setShowActionBar(false);
        //是否全屏
        setFullScreen(true);
    }

}

//基类

package com.example.earl.mychenjinshi;

import android.os.Build;
import android.os.Bundle;
import android.support.annotation.Nullable;
import android.support.v7.app.AppCompatActivity;
import android.view.WindowManager;

/**
 * Description:基类,封装功用功能,方便子类继承,子类只需要实现子类需要的功能即可
 */
public abstract class BaseActivity extends AppCompatActivity{

    private boolean isStatus = false;//沉浸式透明状态栏标示
    private boolean isShowActionBar = true;//是否隐藏actionbar
    private boolean isFullScreen = false;


    @Override
    protected void onCreate(@Nullable Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);

        setContentView(bindLayout());
        initView();
        initData();

    }

    protected abstract int bindLayout();//绑定布局

    protected abstract void initView();//初始化控件

    protected abstract void initData();//初始化数据


    public void setStatus(boolean status) {
        isStatus = status;
        if (isStatus){
            //判断当前设备的版本号》=19的时候,走这个代码块,这个用于版本适配
            if (Build.VERSION.SDK_INT>=Build.VERSION_CODES.KITKAT){

                getWindow().addFlags(WindowManager.LayoutParams.FLAG_TRANSLUCENT_STATUS);
            }
        }
    }

    /**
     * 沉浸式AnctionBar
     * @param showActionBar
     */
    public void setShowActionBar(boolean showActionBar) {
        isShowActionBar = showActionBar;

        if (isShowActionBar){
            getSupportActionBar().show();
        }else{
            getSupportActionBar().hide();
        }
    }

    /**
     * 沉浸式状态栏
     * @param fullScreen
     */
    public void setFullScreen(boolean fullScreen) {
        isFullScreen = fullScreen;
        if (isFullScreen){//是全屏的时候
            getWindow().addFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN);
        }
    }
}
ok了.
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值