首页 > 其他分享 >Android 11 (MTK)状态栏图标反色-->跟随当前应用变化代码流程

Android 11 (MTK)状态栏图标反色-->跟随当前应用变化代码流程

时间:2023-11-14 16:57:17浏览次数:39  
标签:11 numStacks 状态栏 numLightStacks -- int mAppearanceRegions result mStatusBarIconC

//StatusBar.java

public void start() {
   .............
   
    onSystemBarAppearanceChanged(mDisplayId, result.mAppearance, result.mAppearanceRegions,
                result.mNavbarColorManagedByIme);
        mAppFullscreen = result.mAppFullscreen;
        mAppImmersive = result.mAppImmersive;

    ............
}

    @Override
    public void onSystemBarAppearanceChanged(int displayId, @Appearance int appearance,
            AppearanceRegion[] appearanceRegions, boolean navbarColorManagedByIme) {
        if (displayId != mDisplayId) {
            return;
        }
        ........
        //状态栏图标跟随barMode改变
        mLightBarController.onStatusBarAppearanceChanged(appearanceRegions, barModeChanged,
                mStatusBarMode, navbarColorManagedByIme);

        updateBubblesVisibility();
    }


//LightBarController.java

private void updateStatus() {
        final int numStacks = mAppearanceRegions.length;
        int numLightStacks = 0;

        // We can only have maximum one light stack.
        int indexLightStack = -1;

        for (int i = 0; i < numStacks; i++) {
            if (isLight(mAppearanceRegions[i].getAppearance(), mStatusBarMode,
                    APPEARANCE_LIGHT_STATUS_BARS)) {
                numLightStacks++;
                indexLightStack = i;
            }
        }

        // If all stacks are light, all icons get dark.
        if (numLightStacks == numStacks) {
            mStatusBarIconController.setIconsDarkArea(null);
            mStatusBarIconController.getTransitionsController().setIconsDark(true, animateChange());
        }

        // If no one is light, all icons become white.
        else if (numLightStacks == 0) {
            mStatusBarIconController.getTransitionsController().setIconsDark(
                    false, animateChange());
        }

        // Not the same for every stack, magic!
        else {
            mStatusBarIconController.setIconsDarkArea(
                    mAppearanceRegions[indexLightStack].getBounds());
            mStatusBarIconController.getTransitionsController().setIconsDark(true, animateChange());
        }
    }

参考_1
参考_2

标签:11,numStacks,状态栏,numLightStacks,--,int,mAppearanceRegions,result,mStatusBarIconC
From: https://www.cnblogs.com/kato-T/p/17831996.html

相关文章

  • P9838 挑战 NPC IV
    传送门description一个长度为\(n\)的排列的权值定义为其每个子区间内所有数\(\text{lowbit}+1\)之和(注意此处的\(\text{lowbit}\)表示二进制下最小的1在第几位,例如\(\text{lowbit}(5)+1=1\))。求所有长度为\(n\)的排列中权值第\(k\)小的排列的权值。\(n\leq10^{......
  • TTL电平
    TTL电平TTL电平是晶体管-晶体管逻辑(Transistor-TransistorLogic)电平的简称。它是一种数字电路的设计方式,主要用于微处理器和微控制器的设计。在TTL电平中,逻辑"0"和逻辑"1"是由电压的高低来表示的。通常情况下,逻辑"0"对应的电压范围是0V到0.8V,逻辑"1"对应的电压范围是2V到5V(这......
  • AT_abc230_f [ABC230F] Predilection 题解
    prelogue各位在比赛的时候一定要坚信自己的式子,然后去考虑自己的实现是不是挂了。本人在今天模拟赛的时候质疑自己的式子然后不看实现100->0。analysis考虑对这个给定数组进行前缀和,然后就将问题转化成为了求这个前缀和数组的子序列的个数。对于求子序列,我们很轻松可以写出......
  • ubuntu | tar解压
    在Ubuntu中解压tar压缩包,可以使用以下命令:tar-zxvf文件名.tar在tar命令中,各个选项具有以下含义:"z":表示通过gzip工具进行压缩或解压缩。其它的压缩或解压缩方式还包括,比如使用"j"表示采用bzip2的方式。"x":此选项代表执行解压缩操作。相对的,"c"选项则代表压缩操作。"v":在压......
  • 英伟达中国特供芯片是缩水版;华为 Mate60 Pro 国产零件价值占比 47%丨 RTE 开发者日报
     开发者朋友们大家好:这里是「RTE开发者日报」,每天和大家一起看新闻、聊八卦。我们的社区编辑团队会整理分享RTE(RealTimeEngagement)领域内「有话题的新闻」、「有态度的观点」、「有意思的数据」、「有思考的文章」、「有看点的会议」,但内容仅代表编辑的个人......
  • 初学者如何上手服务器训练模型
    拿到一个服务器很迷茫,不知道如何使用,写一份本实验室的服务器使用方法:1下载Xshell和Xftp现在提供了家庭/学习免费版2安装后新建会话3bash命令切换到bash界面bash,全称BourneAgainShell,是绝大多数Linux系统默认的命令解释器,能够处理用户所输入的命令,以及执行指定的Shell脚......
  • UNet pytorch模型转ONNX模型完整code
    1importos2importtorch3importnumpyasnp4fromUnetimportUNET5os.environ["CUDA_VISIBLE_DEVICE"]=""67defmain():8demo=Demo(model_path="/xxx.pth.tar",output="pathto/xxx.onnx")9......
  • 词法分析程序的设计与实现
    设计原理词法分析是编译过程的第一阶段。它的任务就是对输入的字符串形式的源程序按顺序进行扫描,根据源程序的词法规则识别具有独立意义的单词(符号),并输出与其等价的Token序列。有限自动机是描述程序设计语言单词构成的工具,而状态转换图是有限自动机的比较直观的描述方法。我们使......
  • 11月14日星期二
    今天我写了数据结构的课后作业,有关于最小生成树的普里姆算法和迪杰斯特拉算法,以及最短路径的弗洛伊德算法和拓补排序算法,然后学习了vue的前端写法,打算用vue来代替http写前端代码,今天将昨天未完成代码的后端部分完成了,至于前端部分登录界面的实现和选课功能的实现仍然处于构......
  • k8s 删除Terminating状态的namespace
    查看ns状态root@test-10-5-2-15:~#kubectlgetnsNAMESTATUSAGEcert-managerTerminating19h查看该命名空间下的资源kubectlapi-resources-oname--verbs=list--namespaced|xargs-n1kubectlget--show-kind--ignore-not-found-n......