**

在BaseActivity调用这个方法

**

ChangeStatusBarCompat(false, 0);

实现如下

  protected void ChangeStatusBarCompat(boolean isDark, int bgColor) {if (Configure.barHeight > 0 && Build.VERSION.SDK_INT >= Build.VERSION_CODES.KITKAT /*&& Build.VERSION.SDK_INT <Build.VERSION_CODES.M*/) {//通过手机品牌判断显示的状态switch (getBrand()) {case 1://  MIUIBrandCustomizationUtils.setMIUIStatusBarColor(this, isDark);StatusBarCompat.compat(this, ContextCompat.getColor(this, R.color.color_trans_white));break;case 2://魅族BrandCustomizationUtils.setFlyMeStatusBarColor(this, isDark);StatusBarCompat.compat(this, ContextCompat.getColor(this, R.color.color_trans_white));break;default://其他if (bgColor != -1)StatusBarCompat.compat(this, bgColor);elseStatusBarCompat.compat(this, ContextCompat.getColor(this, R.color.color_trans_black));break;}}}

**

获取手机品牌

**

 /*** API<4.4不用管沉浸式, 4.4~6.0* M>API>4.4 判断手机型品牌 可控则通过反射 来改变状态栏颜色,不可控则改变状态栏背景色* API>M*/private int getBrand() {String MODEL = Build.MODEL;if (MODEL == null || MODEL.length() == 0)return 0;if (MODEL.toLowerCase().contains("mi")) {return 1;} else if (MODEL.toLowerCase().contains("meizu") || MODEL.toLowerCase().contains("mx")) {return 2;} else {return 0;}}

**

自定义品牌工具类

**

  public class BrandCustomizationUtils {/*** setDarkStatusBar on FlyMe* 设置状态栏字体为暗色 仅魅族有效* 黑底白字 -> 白底黑字*/public static void setFlyMeStatusBarColor(Activity activity, boolean isDark) {WindowManager.LayoutParams lp = activity.getWindow().getAttributes();try {Class<?> instance = Class.forName("android.view.WindowManager$LayoutParams");int value = instance.getDeclaredField("MEIZU_FLAG_DARK_STATUS_BAR_ICON").getInt(lp);Field field = instance.getDeclaredField("meizuFlags");field.setAccessible(true);int origin = field.getInt(lp);if (isDark) {field.set(lp, origin | value);} else {field.set(lp, (~value) & origin);}} catch (Exception e) {e.printStackTrace();}}public static void setMIUIStatusBarColor(Activity context, boolean isDark) {Window window = context.getWindow();Class clazz = window.getClass();try {int tranceFlag = 0;int darkModeFlag = 0;Class layoutParams = Class.forName("android.view.MiuiWindowManager$LayoutParams");Field field = layoutParams.getField("EXTRA_FLAG_STATUS_BAR_TRANSPARENT");tranceFlag = field.getInt(layoutParams);field = layoutParams.getField("EXTRA_FLAG_STATUS_BAR_DARK_MODE");darkModeFlag = field.getInt(layoutParams);Method extraFlagField = clazz.getMethod("setExtraFlags", int.class, int.class);if (isDark) {extraFlagField.invoke(window, tranceFlag | darkModeFlag, tranceFlag | darkModeFlag);} else {extraFlagField.invoke(window, 0, darkModeFlag);}} catch (Exception e) {e.printStackTrace();}}
}

这个工具类中只有MIUI和魅族,后续还可以增加其他品牌

根据手机品牌设置状态栏相关推荐

  1. adb隐藏状态栏图标_[应用]华为手机怎么设置隐藏状态栏上的图标

    大家使用手机的时候,有没有觉得这个状态栏图标工具,状态栏图标太拥挤,于是就看到有的小伙伴想把华为手机里的状态栏上的图标进行隐藏了,小版教你隐藏闹钟图标. 先上截图,找找状态栏的亮点吧! 下面就是这款神 ...

  2. 获取手机屏幕宽度、高度,状态栏高度,设置状态栏沉浸式

    /*** 获取状态栏高度* @param context 上下文对象* @return 单位px,获取失败返回-1*/ private int getStatusHeight(Context cont ...

  3. android通过代码设置铃声_有打扰 漏消息?那是Android手机通知设置没弄好!

    点击上方电脑爱好者关注我们 在Android系统手机的设置内容中,"通知"是最容易被我们忽略的选项.实际上,如果你每天休息时都会被各种推送提醒打扰,又或是经常错过微信.邮箱.闲鱼等 ...

  4. Android手机关闭短信提醒,有打扰 漏消息?那是Android手机通知设置没弄好!

    原标题:有打扰 漏消息?那是Android手机通知设置没弄好! 在Android系统手机的设置内容中,"通知"是最容易被我们忽略的选项.实际上,如果你每天休息时都会被各种推送提醒打 ...

  5. spoon无法初始化至少一个步骤_手机怎么设置无线路由器 手机设置无线路由器步骤【详解】...

    随着智能手机.平板电脑等无线设备的流行,无线网络也已经逐渐普及.而无线路由器作为无线网络的载体,自然成为必不可少的设备.小编原以为无线路由器只能通过连接电脑才能进行设置,但事实上如今很多路由器都可以通 ...

  6. 7z001怎么解压在安卓手机上面_安卓手机怎么设置网易企业邮箱

    安卓手机怎么设置企业邮箱?电子邮箱只要绑定在移动端的邮件客户端上,都可以移动办公的.需要更多功能的话还是可以使用网易邮箱大师,支持 iOS 和安卓平台,因为邮箱的收发信这些流程都优化了,所以它的实际流 ...

  7. 华为手机灵敏度设置_华为调屏幕灵敏度设置方法

    1.首先,我们先在手机桌2113面中打开"设置"功能,如图所示5261.2.进入设置界面后,在下4102拉菜单中找1653到"智能辅助"功能并点击进入.3.然后 ...

  8. python词云代码手机_【云计算】爬取淘宝手机品牌词云分析(python)

    本文主要向大家介绍了[云计算]爬取淘宝手机品牌词云分析(python),通过具体的内容向大家展现,希望对大家学习云计算有所帮助. 淘宝手机信息的爬取,请看这边博客(点击这里),然后我们利用其中保存的文 ...

  9. android荣耀不弹出获取权限提醒,荣耀手机怎么设置锁屏消息提示?附不提示的解决方法...

    荣耀手机怎么设置锁屏消息提示?附不提示的解决方法.今天新机汇要来为大家分享一下荣耀手机的锁屏消息设置提醒,这样其实也是为了方便接收消息,不过有的用户在来了消息的情况下,在锁屏状态下并不会提醒,那么这是 ...

最新文章

  1. 第二十课.DeepGraphLibrary(一)
  2. python封装api linux_python Socket编程-python API 与 Linux Socket API之间的关系
  3. Lodash 中文文档 (v3.10.1) - “Lang” 方法
  4. 如何从svn上down项目
  5. A-Night at the Museum 水题
  6. Spring对 JDBC 的支持,JdbcTemplate类的使用
  7. 东芝停电事件可能导致Q3闪存市场价格波动
  8. 近六成女受访者赞成“中国男配不上中国女”
  9. VMWare安装配置Win7详解
  10. html中楷书的格式,中国书法的书写格式
  11. 数字转换为人民币大写
  12. 阿里云上实现DDNS公网解析
  13. Magento清空购物车
  14. wordpress企业网站主题仿制02-wordpress企业网站首页的仿制
  15. html语言中行距如何设定,html怎么设置行间距离
  16. 石门一中2021年高考成绩查询,石门一中火了!2020年高考成绩再次刷新记录
  17. 跳槽如何谈薪资?不以升职加薪为目的的跳槽,都是耍流氓!
  18. docker push: retrying in 5 seconds... keep doing this
  19. 【知乎Live】狼叔:如何正确的学习Node.js
  20. 1253:Dungeon Master

热门文章

  1. Python爬虫经典案例:爬取天猫评论 完整源代码
  2. 区块链知识普及:区块链特性之“去中心化”
  3. 如何做一个基于微信景点预约小程序系统毕业设计毕设作品
  4. python迅速绘制好看的极线图
  5. Edius7下载,安装,破解完整
  6. 致远软件更名致远互联 这里面有啥潜台词?
  7. WIN10下CAD在操作时按F8卡顿
  8. “动吧“ - crud 练习 part7 - Shiro安全框架简介 - 58~60 - 、[扩展] - 动态菜单 - 60
  9. 第10章 最小二乘线性回归分析
  10. 【C++学习笔记】C++模板