android activity 全屏非全屏切换
2016-06-15 14:39
681 查看
此文版权属于作者
![](http://hi.csdn.net/attachment/201110/19/0_13189938139CCL.gif)
所有,任何人、媒体或者网站转载、借用都必须征得作者本人同意!
android app 通过代码,在全屏和非全屏之间切换
import android.app.Activity;
import android.content.pm.ActivityInfo;
import android.os.Build;
import android.view.WindowManager;
public class FullScreenOperator {
private static boolean sIsFullScreen = false;
private static int sOrientation = 0;
private static int sSystemUiVisibility = 0;
private static int sEnterCount = 0;
private static boolean isFullScreen(Activity activity) {
return WindowManager.LayoutParams.FLAG_FULLSCREEN
== (activity.getWindow().getAttributes().flags
& WindowManager.LayoutParams.FLAG_FULLSCREEN);
}
public static void enter(Activity activity) {
++sEnterCount;
//Log.v(TAG, "enter " + sEnterCount + ", activity " + activity);
if (activity == null || sEnterCount != 1)
return;
sIsFullScreen = isFullScreen(activity);
sOrientation = activity.getRequestedOrientation();
if (Build.VERSION.SDK_INT >= 14) {
sSystemUiVisibility = activity.getWindow().getDecorView().getSystemUiVisibility();
}
if (!sIsFullScreen) {
activity.getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN,
WindowManager.LayoutParams.FLAG_FULLSCREEN);
}
activity.setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_SENSOR_LANDSCAPE);
if (Build.VERSION.SDK_INT >= 16) {
// View.SYSTEM_UI_FLAG_FULLSCREEN = 0x00000004
activity.getWindow().getDecorView().setSystemUiVisibility(0x00000004);
}
}
public static void exit(Activity activity) {
--sEnterCount;
//Log.v(TAG, "exit " + sEnterCount + ", activity " + activity);
if (activity == null || sEnterCount != 0)
return;
if (!sIsFullScreen)
activity.getWindow().clearFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN);
activity.setRequestedOrientation(sOrientation);
if (Build.VERSION.SDK_INT >= 14) {
activity.getWindow().getDecorView().setSystemUiVisibility(sSystemUiVisibility);
}
}
}
![](http://hi.csdn.net/attachment/201110/19/0_13189938139CCL.gif)
所有,任何人、媒体或者网站转载、借用都必须征得作者本人同意!
android app 通过代码,在全屏和非全屏之间切换
import android.app.Activity;
import android.content.pm.ActivityInfo;
import android.os.Build;
import android.view.WindowManager;
public class FullScreenOperator {
private static boolean sIsFullScreen = false;
private static int sOrientation = 0;
private static int sSystemUiVisibility = 0;
private static int sEnterCount = 0;
private static boolean isFullScreen(Activity activity) {
return WindowManager.LayoutParams.FLAG_FULLSCREEN
== (activity.getWindow().getAttributes().flags
& WindowManager.LayoutParams.FLAG_FULLSCREEN);
}
public static void enter(Activity activity) {
++sEnterCount;
//Log.v(TAG, "enter " + sEnterCount + ", activity " + activity);
if (activity == null || sEnterCount != 1)
return;
sIsFullScreen = isFullScreen(activity);
sOrientation = activity.getRequestedOrientation();
if (Build.VERSION.SDK_INT >= 14) {
sSystemUiVisibility = activity.getWindow().getDecorView().getSystemUiVisibility();
}
if (!sIsFullScreen) {
activity.getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN,
WindowManager.LayoutParams.FLAG_FULLSCREEN);
}
activity.setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_SENSOR_LANDSCAPE);
if (Build.VERSION.SDK_INT >= 16) {
// View.SYSTEM_UI_FLAG_FULLSCREEN = 0x00000004
activity.getWindow().getDecorView().setSystemUiVisibility(0x00000004);
}
}
public static void exit(Activity activity) {
--sEnterCount;
//Log.v(TAG, "exit " + sEnterCount + ", activity " + activity);
if (activity == null || sEnterCount != 0)
return;
if (!sIsFullScreen)
activity.getWindow().clearFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN);
activity.setRequestedOrientation(sOrientation);
if (Build.VERSION.SDK_INT >= 14) {
activity.getWindow().getDecorView().setSystemUiVisibility(sSystemUiVisibility);
}
}
}
相关文章推荐
- 使用C++实现JNI接口需要注意的事项
- Android IPC进程间通讯机制
- Android Manifest 用法
- [转载]Activity中ConfigChanges属性的用法
- Android之获取手机上的图片和视频缩略图thumbnails
- Android之使用Http协议实现文件上传功能
- Android学习笔记(二九):嵌入浏览器
- android string.xml文件中的整型和string型代替
- i-jetty环境搭配与编译
- android之定时器AlarmManager
- android wifi 无线调试
- Android Native 绘图方法
- Android java 与 javascript互访(相互调用)的方法例子
- android 代码实现控件之间的间距
- android FragmentPagerAdapter的“标准”配置
- Android"解决"onTouch和onClick的冲突问题
- android:installLocation简析
- android searchView的关闭事件
- SourceProvider.getJniDirectories