1.要activity的
setContentView(R.layout.video_main);
2.之前加上
getWindow().addFlags(WindowManager.LayoutParams.FLAG_LAYOUT_IN_SCREEN);
getWindow().addFlags(WindowManager.LayoutParams.FLAG_LAYOUT_NO_LIMITS);
3.再用
getWindow().addFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN);//显示状态栏
getWindow().clearFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN);//隐藏状态栏
但是,我发现用上面那(2的)两句话,把我videoview中用的mediacoontroller的进度条给屏蔽了
所以,可以把那两句话改用
getWindow().getDecorView().setSystemUiVisibility(View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN);
我用的是viewpager,中间页里放了videoview,所以会发现,videoview上显示正常了,但是左右两页显示不正常了
可以加上
//显示状态栏,Activity不全屏显示(恢复到有状态的正常情况)
getWindow().getDecorView().setSystemUiVisibility(View.SYSTEM_UI_FLAG_VISIBLE);
所以可以在监听滑到第几页
@Override
public void onPageSelected(int arg0) {
if (arg0 == 0) {
getWindow().getDecorView().setSystemUiVisibility(View.SYSTEM_UI_FLAG_VISIBLE);
getWindow().clearFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN);
}else if (arg0 == 2){
getWindow().getDecorView().setSystemUiVisibility(View.SYSTEM_UI_FLAG_VISIBLE);
getWindow().clearFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN);
}else{
getWindow().getDecorView().setSystemUiVisibility(View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN);
new Handler().postDelayed(new Runnable() {
@Override
public void run() {
getWindow().addFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN);
}
},1000);
}
}
补充:透明任务栏
在View中添加定义了两个Flag。
// 完全透明任务栏
public static final int SYSTEM_UI_FLAG_TRANSPARENT_STATUS_BAR =
0x00000010;
//半透明任务栏
public static final int SYSTEM_UI_FLAG_TRANSLUCENT_STATUS_BAR =
0x00000020;
有些应用需要设置的时候,在需要的UI界面设置:
getWindow().getDecorView().setSystemUiVisibility(View.SYSTEM_UI_FLAG_TRANSPARENT_STATUS_BAR);
应用退出无需做任何处理,系统会恢复默认。