Android给Activity状态栏设置自定义颜色
2017-09-11 19:28
330 查看
Android开发这么久了,肯定会遇到因为不同手机自带的app状态栏不一样的问题,刚好公司最近有一个需求就是把状态栏定义成相同的颜色,也符合Material Design风格,于是查看了google 的 Android SDK以及在前辈的博客帮助下,我找了相关代码。先测量出状态栏的高度:
然后通过高度给状态栏添加设置自定义颜色的布局:
下面就贴出我的代码:
// 获取手机状态栏高度
方法中的形参则是你自己需求的颜色。完毕!run起来啊...
然后通过高度给状态栏添加设置自定义颜色的布局:
下面就贴出我的代码:
// 获取手机状态栏高度
public int getStatusBarHeight() { 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 = getResources().getDimensionPixelSize(x); } catch (Exception e1) { e1.printStackTrace(); } return statusBarHeight; }
//设置自己需要的颜色 public void setTheme(String color) { if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.KITKAT) { View v = new View(this); ViewGroup.LayoutParams lParams = new ViewGroup.LayoutParams( ViewGroup.LayoutParams.MATCH_PARENT, getStatusBarHeight()); if (color == null) { v.setBackgroundColor(ContextCompat.getColor(this, R.color.titlr_bg_color)); } else { v.setBackgroundColor(Color.parseColor(color)); } v.setLayoutParams(lParams); ViewGroup view = (ViewGroup) getWindow().getDecorView(); view.addView(v); Window window = getWindow(); window.setFlags(WindowManager.LayoutParams.FLAG_TRANSLUCENT_STATUS, WindowManager.LayoutParams.FLAG_TRANSLUCENT_STATUS); } }
方法中的形参则是你自己需求的颜色。完毕!run起来啊...
相关文章推荐
- Android GradientDrawable类的详解,设置activity的背景颜色渐变效果
- Android自定义折线图,可设置基准线,不同点颜色
- android 状态栏颜色的两种设置模式
- Android GradientDrawable类的详解,设置activity的背景颜色渐变效果
- 【android】TextView 自定义颜色设置
- Android状态栏颜色修改,activity状态栏颜色,非布局写法
- Android 如何设置状态栏颜色和标题栏颜色一致
- android 设置手机状态栏的背景颜色
- Android 状态栏的 颜色 的设置上的一些问题 4.4以上 ,字体颜色优化
- Android StatusBar 状态栏颜色设置
- Android 4.4之后设置状态栏颜色
- 设置Android系统的状态栏颜色(从Android4.4开始)
- android --activity 中的控件设置侦听(onclickListener)无效,自定义adapter不执行getView 方法
- Android在activity页面中让标题栏全屏显示自定义颜色
- android 系统状态栏的 换颜色-- 自己设置颜色
- Android 在代码中为textview设置自定义的颜色
- 【Android开发日记】TextView超链接启动 Activity,取消下划线自定义颜色
- 如何设置android 5.0主题,状态栏,toolbar颜色设定
- 1.android 改变状态栏的颜色,2 设置透明渐变式的样式!,设置状态栏为透明的渐变的
- Android 状态栏透明、自定义状态栏颜色设置