比较好的文章
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了.