android开发 修改状态栏背景颜色和字体颜色(工作日记)
来源:互联网 发布:影视会员源码 编辑:程序博客网 时间:2024/06/08 15:56
修改状态栏颜色很容易,在相关页面的主题style里,设置<item name = "android:colorPrimaryDark">@color/statusbar_background_color_dark</item>
或者andorid:statusBarColor
(借用看到的图)
-----------------------------------------------------------------------
然后尝试修改状态栏的字体,在样式里,尝试了好几种都没有用。
最后在Activity中,利用反射机制,修改了状态栏颜色。因为是公司的项目,在底层已经有人做过调整了,可能不适用于任何情况,仅提供一种思路。
首先,明确修改页面的Activity,在onCreat()方法里,加上自定义的方法setStatusBarIconDark(true);下面是具体的setStatusBarIconDark方法:
private void setStatusBarIconDark(boolean dark){try{Object win = getWindow();Class<?> cls = win.getClass();Method method = cls.getDeclaredMethod("setStatusBarIconDark",boolean.class);method.invoke(win,dark);} catch(Exception e){Log.v("ff","statusBarIconDark,e="+e);}}
找到framework里的setStatusBarIconDark方法进行修改。我是将字体改为深色样式。
看一下反射机制中的问题:
Method getMethod(String name, Class[] params) 根据方法名和参数,返回一个具体的具有public属性的方法,包括从父类继承的public方法和实现接口的public方法
Method[] getMethods() 返回所有具有public属性的方法数组 Method[] getDeclaredMethods() 返回该类中的所有的方法数组
Method getDeclaredMethod(String name, Class[] params) 根据方法名和参数,返回一个具体的方法(不分public和非public属性),不包括从父类继承的方法
最后,抛出反射invoke方法
- android开发 修改状态栏背景颜色和字体颜色(工作日记)
- android开发,修改状态栏字体颜色?
- android 隐藏状态栏和修改状态栏的背景颜色(沉浸式状态栏)
- android白色背景状态栏字体颜色
- Android 沉浸式状态栏-字体颜色与背景颜色修改实现与兼容
- 修改状态栏字体颜色
- 修改状态栏字体颜色
- 修改状态栏字体颜色
- 修改状态栏字体颜色
- Bootstrap navbar 背景颜色、背景图和字体颜色修改 ArcGIS Web 开发学习(四)
- 状态栏背景颜色和状态栏图标icon颜色修改
- android基础学习(2)-------修改TextView字体颜色和背景颜色
- 导航栏、状态栏字体颜色大小和背景颜色
- 设置状态栏的背景颜色和字体颜色
- Android修改状态栏的背景颜色
- 如何修改状态栏Statusbar(SystemUI)图标和字体颜色
- eclipse 背景和字体颜色修改
- 修改secureCRT背景和字体的颜色
- win10系统,关机后电源键一直亮着
- SSM框架——详细整合教程(Spring+SpringMVC+MyBatis)
- java:IO流学习小结
- Linux 用户名文件
- 如何解决 Java 安全问题?
- android开发 修改状态栏背景颜色和字体颜色(工作日记)
- VB2005 等待或暂停
- 软连接跟硬链接
- 优化SQL语句,提高数据库的访问性能
- final finally finalize三者有什么区别
- 华为oj 坐标移动
- Java关键字-final
- vmware esxi处理嵌套虚拟化方法
- js常用内置对象