public class StatusBarUtil {/*** 修改状态栏为全透明* @param activity*/@TargetApi(19)public static void transparencyBar(Activity activity){if(Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {Window window = activity.getWindow();window.clearFlags(WindowManager.LayoutParams.FLAG_TRANSLUCENT_STATUS);window.getDecorView().setSystemUiVisibility(View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN| View.SYSTEM_UI_FLAG_LAYOUT_STABLE);window.addFlags(WindowManager.LayoutParams.FLAG_DRAWS_SYSTEM_BAR_BACKGROUNDS);window.setStatusBarColor(Color.TRANSPARENT);} elseif (Build.VERSION.SDK_INT >= Build.VERSION_CODES.KITKAT) {Window window =activity.getWindow();window.setFlags(WindowManager.LayoutParams.FLAG_TRANSLUCENT_STATUS,WindowManager.LayoutParams.FLAG_TRANSLUCENT_STATUS);}}/***设置状态栏黑色字体图标,* 适配4.4以上版本MIUIV、Flyme和6.0以上版本其他Android* @param activity* @return 1:MIUUI 2:Flyme 3:android6.0*/public static int StatusBarLightMode(Activity activity){int result=0;if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.KITKAT) {if(MIUISetStatusBarLightMode(activity.getWindow(), true)){result=1;}else if(FlymeSetStatusBarLightMode(activity.getWindow(), true)){result=2;}else if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) {activity.getWindow().getDecorView().setSystemUiVisibility(View.SYSTEM_UI_FLAG_LIGHT_STATUS_BAR);result=3;}}return result;}/*** 已知系统类型时,设置状态栏黑色字体图标。* 适配4.4以上版本MIUIV、Flyme和6.0以上版本其他Android* @param activity* @param type 1:MIUUI 2:Flyme 3:android6.0*/public static void StatusBarLightMode(Activity activity,int type){if(type==1){MIUISetStatusBarLightMode(activity.getWindow(), true);}else if(type==2){FlymeSetStatusBarLightMode(activity.getWindow(), true);}else if(type==3){activity.getWindow().getDecorView().setSystemUiVisibility( View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN|View.SYSTEM_UI_FLAG_LIGHT_STATUS_BAR);}}/*** 清除MIUI或flyme或6.0以上版本状态栏黑色字体*/public static void StatusBarDarkMode(Activity activity,int type){if(type==1){MIUISetStatusBarLightMode(activity.getWindow(), false);}else if(type==2){FlymeSetStatusBarLightMode(activity.getWindow(), false);}else if(type==3){activity.getWindow().getDecorView().setSystemUiVisibility(View.SYSTEM_UI_FLAG_VISIBLE);}}/*** 设置状态栏图标为深色和魅族特定的文字风格* 可以用来判断是否为Flyme用户* @param window 需要设置的窗口* @param dark 是否把状态栏字体及图标颜色设置为深色* @return  boolean 成功执行返回true**/public static boolean FlymeSetStatusBarLightMode(Window window, boolean dark) {boolean result = false;if (window != null) {try {WindowManager.LayoutParams lp = window.getAttributes();Field darkFlag = WindowManager.LayoutParams.class.getDeclaredField("MEIZU_FLAG_DARK_STATUS_BAR_ICON");Field meizuFlags = WindowManager.LayoutParams.class.getDeclaredField("meizuFlags");darkFlag.setAccessible(true);meizuFlags.setAccessible(true);int bit = darkFlag.getInt(null);int value = meizuFlags.getInt(lp);if (dark) {value |= bit;} else {value &= ~bit;}meizuFlags.setInt(lp, value);window.setAttributes(lp);result = true;} catch (Exception e) {}}return result;}/*** 设置状态栏字体图标为深色,需要MIUIV6以上* @param window 需要设置的窗口* @param dark 是否把状态栏字体及图标颜色设置为深色* @return  boolean 成功执行返回true**/public static boolean MIUISetStatusBarLightMode(Window window, boolean dark) {boolean result = false;if (window != null) {Class clazz = window.getClass();try {int darkModeFlag = 0;Class layoutParams = Class.forName("android.view.MiuiWindowManager$LayoutParams");Field  field = layoutParams.getField("EXTRA_FLAG_STATUS_BAR_DARK_MODE");darkModeFlag = field.getInt(layoutParams);Method extraFlagField = clazz.getMethod("setExtraFlags", int.class, int.class);if(dark){extraFlagField.invoke(window,darkModeFlag,darkModeFlag);//状态栏透明且黑色字体}else{extraFlagField.invoke(window, 0, darkModeFlag);//清除黑色字体}result=true;}catch (Exception e){}}return result;}
}

修改状态栏颜色为黑色 兼容小米 魅族相关推荐

  1. Android界面全屏适配7.0、动态修改状态栏颜色、浅色状态栏深色字体

    https://www.jianshu.com/p/e93787e23d3b 在需要置顶的界面添加主题TopTheme 为了适配要创建多个value文件夹,名称不能错 styles.xml <! ...

  2. php视频直播系统源码Android 修改状态栏颜色 白色、透明色

    封装工具类StatusBarUtils public class StatusBarUtils {/*** 修改状态栏为全透明** @param activity*/@TargetApi(19)pub ...

  3. android 状态栏一体化 fragment,单Activity多Fragment动态修改状态栏颜色功能

    目录介绍 1.关于如何集成 2.关于如何使用 3.关于鸣谢 4.关于版本更新说明 5.关于其他介绍 0.说明 状态栏工具类,应该可以满足绝大多数的使用场景.具体可以参考代码案例,欢迎star!! 1. ...

  4. 状态栏 (+强制修改状态栏颜色)/ 导航栏 / 底部导航Tabbar 常用设置

    1.状态栏设置 全局设置状态栏:设置info.plist文件的View controller-based status bar appearance 选项 YES or NO 1.1.如果选择NO,则 ...

  5. html设置ios状态栏颜色,iOS 修改状态栏颜色

    iOS中修改状态颜色在iOS9后官方废弃了下面这种方法 [[UIApplication sharedApplication] setStatusBarStyle:UIStatusBarStyleDef ...

  6. APP动态修改状态栏颜色

    对安卓应用开发者,UI部分最难搞的就是APP顶部的状态栏. 一致的APP风格,状态栏仅仅需要设置一种颜色. 安卓全局颜色设置 单一APP状态栏 很显然,我们只要将AppTheme中colorPrima ...

  7. iOS中修改状态栏颜色

    修改启动页状态栏颜色 默认显示黑色,选中TARGETS->General->Deployment Info->Status Bar Style,选择Light Content则状态栏 ...

  8. android沉浸式状态栏、变色状态栏、透明状态栏、修改状态栏颜色及透明

    首先我要区分清楚沉浸式状态栏与变色状态栏. 沉浸式状态栏指的是,状态栏隐藏,在手指做了相关操作后,状态栏显示出来,例如视频播放器,在播放视频时是隐藏状态栏的,但是点击屏幕的时候,状态栏会显示出来,再例 ...

  9. html5 状态栏颜色怎么改,iOS 修改状态栏颜色的3种方式

    通过info.plist设置默认 在 Info.plist 里增加一行 UIStatusBarStyle( Status bar style 也可以),这里可以设置两个值,就是上面提到那两个 UISt ...

最新文章

  1. 分析部署无线局域网的关键要素
  2. mysql随机查询 uuid_mysql实现随机查询经验谈
  3. python服务器搭建nginx_Nginx简单快速搭建文件服务器
  4. 如何获取真实的执行计划
  5. github标星8331+:吴恩达深度学习课程资源(完整笔记、中英文字幕视频、python作业,提供百度云镜像!)...
  6. 零基础小白一个,我是如何入门商业数据分析师的
  7. 同步 异步 阻塞 非阻塞深入理解
  8. Java微信公众平台开发(二)--微信服务器post消息体的接收
  9. 输出四位完全平方数_完全平方数中的规律
  10. 电商人:别再跟数据透视表苦苦挣扎,这个报表神器才是你最后出路
  11. python __builtins__ str类 (65)
  12. 版本向量 使用css时正确区分IE版本[转]
  13. self-hacking第五天
  14. 阿里为什么推荐使用LongAdder?而不是AtomicLong?
  15. 10x 程序员工作法 - 划重点 | “自动化”主题的重点内容回顾汇总
  16. 5分钟latex 使用入门写llncs论文
  17. scratch四级考纲
  18. 计算机状态oxcoooooe9,win7 system文件损坏修复办法
  19. 曾国藩《挺经》卷十七藏锋
  20. 《数据清洗》——kettle基本工具的使用

热门文章

  1. 从内核源代码配置文件预測泛泰新品(A920 ?)
  2. Java中将int数组转换为String数组
  3. javamail 获取邮箱文件夹列表
  4. 什么是递归(前序遍历)
  5. Java源码-判断两个字符串的子字符串是否匹配(Comparing Portions of Strings)
  6. 【ENVI】landsat7去条带后栅格图像分离
  7. ACDSee Pro 6.0.169 (x86) crack by XenoCoder
  8. 公钥、私钥、数字签名和数字证书简介
  9. 锤子和学姐的故事——面对爱情,你的勇气有多大?
  10. 西南民族大学第十届校赛(同步赛)(F题——集训队脱单大法:这是一道只能由学姐我自己出数据的水题)