你以一个10年Android开发的身份。帮我封装个Android工具类,只能使用java,不能使用xml的方式,只能使用java,需要适配各个Android系统版本的特性。工具类中需要有是否沉浸式,是否全屏,是否隐藏底部导航栏,是否隐藏顶部状态栏和标题栏的方法
时间: 2023-06-04 20:03:44 浏览: 270
好的,我可以帮您封装一个Android工具类,可以支持各个Android系统版本的特性。以下是工具类的相关方法:
1. 检查是否支持沉浸式:
```
public static boolean isImmersionSupported(Context context) {
return Build.VERSION.SDK_INT >= Build.VERSION_CODES.KITKAT;
}
```
2. 设置沉浸式:
```
public static void setImmersive(Activity activity) {
if (Build.VERSION.SDK_INT < Build.VERSION_CODES.KITKAT) {
return;
}
activity.getWindow().addFlags(WindowManager.LayoutParams.FLAG_TRANSLUCENT_STATUS);
activity.getWindow().addFlags(WindowManager.LayoutParams.FLAG_TRANSLUCENT_NAVIGATION);
}
```
3. 检查是否支持全屏:
```
public static boolean isFullScreenSupported(Activity activity) {
return Build.VERSION.SDK_INT >= Build.VERSION_CODES.JELLY_BEAN;
}
```
4. 设置全屏:
```
public static void setFullScreen(Activity activity) {
if (Build.VERSION.SDK_INT < Build.VERSION_CODES.JELLY_BEAN) {
return;
}
activity.getWindow().getDecorView().setSystemUiVisibility(
View.SYSTEM_UI_FLAG_LAYOUT_STABLE |
View.SYSTEM_UI_FLAG_LAYOUT_HIDE_NAVIGATION |
View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN |
View.SYSTEM_UI_FLAG_HIDE_NAVIGATION |
View.SYSTEM_UI_FLAG_FULLSCREEN |
View.SYSTEM_UI_FLAG_IMMERSIVE_STICKY);
}
```
5. 检查是否支持隐藏底部导航栏:
```
public static boolean isHideNavigationSupported(Activity activity) {
return Build.VERSION.SDK_INT >= Build.VERSION_CODES.ICE_CREAM_SANDWICH;
}
```
6. 隐藏底部导航栏:
```
public static void hideNavigation(Activity activity) {
if (Build.VERSION.SDK_INT < Build.VERSION_CODES.ICE_CREAM_SANDWICH) {
return;
}
activity.getWindow().getDecorView().setSystemUiVisibility(
View.SYSTEM_UI_FLAG_HIDE_NAVIGATION |
View.SYSTEM_UI_FLAG_IMMERSIVE_STICKY);
}
```
7. 检查是否支持隐藏顶部状态栏和标题栏:
```
public static boolean isHideStatusAndTitleSupported(Activity activity) {
return Build.VERSION.SDK_INT >= Build.VERSION_CODES.JELLY_BEAN;
}
```
8. 隐藏顶部状态栏和标题栏:
```
public static void hideStatusAndTitle(Activity activity) {
if (Build.VERSION.SDK_INT < Build.VERSION_CODES.JELLY_BEAN) {
return;
}
activity.getWindow().getDecorView().setSystemUiVisibility(
View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN |
View.SYSTEM_UI_FLAG_FULLSCREEN |
View.SYSTEM_UI_FLAG_HIDE_NAVIGATION |
View.SYSTEM_UI_FLAG_LAYOUT_STABLE |
View.SYSTEM_UI_FLAG_LOW_PROFILE |
View.SYSTEM_UI_FLAG_IMMERSIVE_STICKY);
activity.getActionBar().hide();
}
```
希望这个工具类可以帮助到您,如果有任何问题或者需要进一步的定制,请随时联系我!
阅读全文