随时随地阅读更多技术实战干货,获取项目源码、学习资料,请关注源代码社区公众号(ydmsq666)
1、
/**
* 收起状态栏
*
* @param context
* 上下文对象
* @return 成功收起状态栏返回true,否则返回false
*/
public static boolean collapseStatusBar(Context context) {
Object statusbarService = context.getSystemService("statusbar");
if (statusbarService == null) {
return false;
}
try {
Class<?> statusBarManager = Class
.forName("android.app.StatusBarManager");
if (statusBarManager == null) {
return false;
}
Method collapseMethod;
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.JELLY_BEAN_MR1) {
collapseMethod = statusBarManager.getMethod("collapsePanels");
} else {
collapseMethod = statusBarManager.getMethod("collapse");
}
if (collapseMethod == null) {
return false;
}
collapseMethod.invoke(statusbarService);
} catch (Exception e) {
e.printStackTrace();
return false;
}
return true;
}
2、
/**
* 展开状态栏
*
* @param context
* 上下文对象
* @return 成功展开状态栏返回true,否则返回false
*/
public static boolean expandStatusBar(Context context) {
Object statusbarService = context.getSystemService("statusbar");
if (statusbarService == null) {
return false;
}
try {
Class<?> statusBarManager = Class
.forName("android.app.StatusBarManager");
if (statusBarManager == null) {
return false;
}
Method expandMethod;
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.JELLY_BEAN_MR1) {
expandMethod = statusBarManager
.getMethod("expandNotificationsPanel");
} else {
expandMethod = statusBarManager.getMethod("expand");
}
if (expandMethod == null) {
return false;
}
expandMethod.invoke(statusbarService);
} catch (Exception e) {
e.printStackTrace();
return false;
}
return true;
}
3、
/**
* 获取状态栏高度
*
* @param context
* 上下文对象
* @return 状态栏高度
*/
public static int getStatusBarHeight(Context context) {
Class<?> c = null;
Object obj = null;
Field field = null;
int x = 0, statusBarHeight = 0;
try {
c = Class.forName("com.android.internal.R$dimen");
obj = c.newInstance();
field = c.getField("status_bar_height");
x = Integer.parseInt(field.get(obj).toString());
statusBarHeight = context.getResources().getDimensionPixelSize(x);
} catch (Exception e) {
e.printStackTrace();
}
return statusBarHeight;
}
4、
/**
* 切换到全屏
*
* @param activity
* activity实例
*/
public static void switchToFullScreen(Activity activity) {
activity.getWindow().clearFlags(
WindowManager.LayoutParams.FLAG_FORCE_NOT_FULLSCREEN);
activity.getWindow().addFlags(
WindowManager.LayoutParams.FLAG_FULLSCREEN);
}
5、
/**
* 切换到非全屏
*
* @param activity
* activity实例
*/
public static void switchToNoFullScreen(Activity activity) {
activity.getWindow().clearFlags(
WindowManager.LayoutParams.FLAG_FULLSCREEN);
activity.getWindow().addFlags(
WindowManager.LayoutParams.FLAG_FORCE_NOT_FULLSCREEN);
}
6、
/**
* 开启显示触摸位置功能
*
* @param context
* 上下文对象
*/
public static void showTouchLocation(Context context) {
android.provider.Settings.System.putInt(context.getContentResolver(),
"show_touches", 1);
}
7、
/**
* 关闭显示触摸位置功能
*
* @param context
* 上下文对象
*/
public static void hideTouchLocation(Context context) {
android.provider.Settings.System.putInt(context.getContentResolver(),
"show_touches", 0);
}
备注:部分代码原型来源网络。