android使状态栏沉浸效果
2016-08-12 22:02
155 查看
ROM模块界面实现沉浸式状态栏的效果
方案一
在Activity里onCreate()方法中
super.onCreate(arg0);
getWindow().setStatusBarColor(getResources().getColor(R.color.status_bar_color));
etContentView(R.layout.group_browser_list_activity);
大多数界面使用此方法可以生效
方案二
在Activity的Oncreate()方法中加入FLAG,如下:
getWindow().addFlags(WindowManager.LayoutParams.FLAG_TRANSLUCENT_STATUS);
这样的操作会使状态栏、虚拟键透明化,整个布局会充满屏幕。此时需要修改Acticity布局文件
通过getWindow().getDecorView().findViewById(android.R.id.content)得到activty外层布局parent
在parent中添加一个和状态栏一样大小的View---通过此view来更新状态栏颜色
并设置activity外框边距即可
parent.getChildAt(0).setPadding(0,statusBarHeight, 0, 0);
具体代码如下
工具类代码:
public class StatusBarColorManager {
public static void setStatusBarColor(Activityactivity, int statusBarcolorId){
compat(activity, statusBarcolorId);
}
private static void compat(Activity activity,int statusBarcolorId) {
activity.getWindow().addFlags(WindowManager.LayoutParams.FLAG_TRANSLUCENT_STATUS);
int statusBarHeight =getStatusBarHeight(activity);
View view = new View(activity);
view.setBackgroundColor(statusBarcolorId);
ViewGroup parent = (ViewGroup)activity.getWindow().getDecorView().findViewById(
android.R.id.content);
parent.addView(view, ViewGroup.LayoutParams.MATCH_PARENT,
statusBarHeight);
parent.getChildAt(0).setPadding(0,statusBarHeight, 0, 0);
}
private static int getStatusBarHeight(Contextcontext) {
int id =context.getResources().getIdentifier("status_bar_height",
"dimen", "android");
int dimen = 0;
if (id > 0) {
dimen =context.getResources().getDimensionPixelSize(id);
}
return dimen;
}
}
调用方法
在Activity的Oncreate()方法中setContentView(R.layout.group_browser_list_activity)之后 调用
StatusBarColorManager.setStatusBarColor(this,getResources().getColor(R.color.primary_color_dark));即可
方案一
在Activity里onCreate()方法中
super.onCreate(arg0);
getWindow().setStatusBarColor(getResources().getColor(R.color.status_bar_color));
etContentView(R.layout.group_browser_list_activity);
大多数界面使用此方法可以生效
方案二
在Activity的Oncreate()方法中加入FLAG,如下:
getWindow().addFlags(WindowManager.LayoutParams.FLAG_TRANSLUCENT_STATUS);
这样的操作会使状态栏、虚拟键透明化,整个布局会充满屏幕。此时需要修改Acticity布局文件
通过getWindow().getDecorView().findViewById(android.R.id.content)得到activty外层布局parent
在parent中添加一个和状态栏一样大小的View---通过此view来更新状态栏颜色
并设置activity外框边距即可
parent.getChildAt(0).setPadding(0,statusBarHeight, 0, 0);
具体代码如下
工具类代码:
public class StatusBarColorManager {
public static void setStatusBarColor(Activityactivity, int statusBarcolorId){
compat(activity, statusBarcolorId);
}
private static void compat(Activity activity,int statusBarcolorId) {
activity.getWindow().addFlags(WindowManager.LayoutParams.FLAG_TRANSLUCENT_STATUS);
int statusBarHeight =getStatusBarHeight(activity);
View view = new View(activity);
view.setBackgroundColor(statusBarcolorId);
ViewGroup parent = (ViewGroup)activity.getWindow().getDecorView().findViewById(
android.R.id.content);
parent.addView(view, ViewGroup.LayoutParams.MATCH_PARENT,
statusBarHeight);
parent.getChildAt(0).setPadding(0,statusBarHeight, 0, 0);
}
private static int getStatusBarHeight(Contextcontext) {
int id =context.getResources().getIdentifier("status_bar_height",
"dimen", "android");
int dimen = 0;
if (id > 0) {
dimen =context.getResources().getDimensionPixelSize(id);
}
return dimen;
}
}
调用方法
在Activity的Oncreate()方法中setContentView(R.layout.group_browser_list_activity)之后 调用
StatusBarColorManager.setStatusBarColor(this,getResources().getColor(R.color.primary_color_dark));即可
相关文章推荐
- android状态栏沉浸效果(还没整理好,晚上整理)
- Android隐藏状态栏和标题栏,相当于全屏效果
- Android隐藏状态栏和标题栏,相当于全屏效果
- Android状态栏透明(沉浸式效果)
- android 4.4状态栏沉浸
- android-沉浸状态栏以及状态栏背景色如何设置
- Android隐藏状态栏和标题栏,相当于全屏效果
- Android Immersive Mode (沉浸模式) 还是 Translucent Bars (透明状态栏)
- Android 沉浸式状态栏效果(状态栏与内容完全融合、类似于iphone 7.0系统)
- Android 沉浸式状态栏(QQ5.0透明状态栏的效果)
- Android隐藏状态栏和标题栏,相当于全屏效果
- Android隐藏状态栏和标题栏,相当于全屏效果
- Android隐藏状态栏和标题栏,相当于全屏效果
- Android隐藏状态栏和标题栏,相当于全屏效果
- android 4.4以上可以实现的沉浸式状态栏效果
- android 状态栏 导航栏隐藏显示控制方法及效果示例
- Android隐藏状态栏和标题栏,相当于全屏效果
- Android隐藏状态栏和标题栏,相当于全屏效果
- Android 透明的状态栏有渐变的阴影效果
- Android:透明状态栏的效果实现