亮度调节(二)

关于Android8的亮度调节,分析到了DisplayPowerController的updatePowerState()方法
再将亮度值进行“加工”以后,会执行animateScreenBrightness()方法

animateScreenBrightness

 private void animateScreenBrightness(int target, int rate) {
   
        if (DEBUG) {
   
            Slog.d(TAG, "Animating brightness: target=" + target +", rate=" + rate);
        }
        //这里进行亮度值的设置  返回值为true标志着亮度值有变化 
        if (mScreenBrightnessRampAnimator.animateTo(target, rate)) {
   
            Trace.traceCounter(Trace.TRACE_TAG_POWER, "TargetScreenBrightness", target);
            try {
   
                mBatteryStats.noteScreenBrightness(target);//计算耗电量
            } catch (RemoteException ex) {
   
                // same process
            }
        }
    }

这里关于RampAnimator.animateTo(target, rate)方法

animateTo

 public boolean animateTo(int target, int rate) {
   
        // Immediately jump to the target the first time.
        //第一次运行的时候  直接设置亮度值  没有动画
        if (mFirstTime || rate <= 0) {
   
            if (mFirstTime || target != mCurrentValue) {
   
                mFirstTime = false;//除了第一次创建这个类之外  这个在调用这个方法之后都是false 接下来只会在rate<=0的时候进来这个判断
                mRate = 0;//设置为0  直接设置亮度
                mTargetValue = target;
                mCurrentValue = target;
                mProperty.setValue(mObject, target);//设置亮度值的方法
                if (mAnimating) {
   
                    mAnimating = false;
                    cancelAnimationCallback();
                }
                if (mListener != null) {
   
                    mListener.onAnimationEnd();
                }
                return true;
            }
            return false;
        }

        // Adjust the rate based on the closest target.
        // If a faster rate is specified, then use the new rate so that we converge
        // more rapidly based on the new request.
        // If a slower rate is specified, then use the new rate only if the current
        // value is somewhere in between the new and the old target meaning that
        // we will be ramping in a different direction to get there.
        // Otherwise, continue at the previous rate.
        if (!mAnimating
                || rate > mRate
                || (target <= mCurrentValue && mCurrentValue <= mTargetValue)
                || (mTargetValue <= mCurrentValue && mCurrentValue <= target)) {
   
            mRate = rate;
        }

        final boolean changed = (mTargetValue != target);//true表示有变化
        mTargetValue = target;//设置目标亮度

        // Start animating.
        if (!mAnimating && target != mCurrentValue) {
   //调整亮度
            mAnimating = true;
            mAnimatedValue = mCurrentValue;
            mLastFrameTimeNanos = System.nanoTime();
            postAnimationCallback();
        }

        return changed;
    }

在这里,第一次运行的时候,直接设置亮度,没有动画;后面在对亮度进行设置时首先判断是否需要动画,如果需要设置是缓慢变化还是快速变化;然后调用 postAnimationCallback()方法


private void postAnimationCallback() {
   
        mChoreographer.postCallback(Choreographer.CALLBACK_ANIMATION, mAnimationCallback, null);
    }

然后看一下执行亮度调节的mAnimationCallback

private final Runnable mAnimationCallback = new Runnable() {
   
        @Override // Choreographer callback
        public void run() {
   
            final long frameTimeNanos = mChoreographer.getFrameTimeNanos()
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 在CentOS 7中调节亮度非常简单。下面是一种方法: 1. 首先,通过命令行或图形界面登录到CentOS 7系统。 2. 打开终端,输入以下命令以确保系统已获取最新的软件包列表: ``` sudo yum update ``` 3. 安装用于调节亮度的工具。可以使用以下命令安装“xbacklight”工具: ``` sudo yum install xbacklight ``` 4. 安装完成后,将亮度调整到所需的水平。在终端中输入以下命令来增加亮度: ``` xbacklight -inc 10 ``` 这将增加亮度10%。您可以使用不同的值来调整亮度水平。 5. 同样地,要降低亮度,使用以下命令: ``` xbacklight -dec 10 ``` 这将降低亮度10%。 6. 如果您要将亮度设置为特定值,而不仅仅是增加或降低亮度,请使用以下命令: ``` xbacklight -set 50 ``` 这将将亮度设置为50%。您可以将50替换为所需的值。 7. 使用上述命令调整亮度。您可以在终端中多次输入这些命令来达到所需的亮度水平。 请注意,某些笔记本电脑可能无法使用xbacklight工具调节亮度。这种情况下,您可能需要使用其他工具或方法来调整亮度。 ### 回答2: CentOS 7是一种流行的Linux操作系统,可以通过几种方法来调节亮度。 1. 使用Fn功能键:大多数笔记本电脑都配备了专门的Fn功能键,其中包括亮度调节。按住Fn键并使用F1-F12键中的一个来调节亮度。 2. 使用系统设置:单击右上角的设置图标,然后选择“显示”。在“亮度和锁定”选项卡中,您可以通过滑动滑块来调节亮度。根据显示器的类型,您可能需要在该选项卡中选择不同的显示器。 3. 使用命令行:如果您更喜欢使用命令行界面,可以通过以下命令来调节亮度: a. 安装xbacklight软件包:在终端中运行以下命令来安装xbacklight软件包:sudo yum install xbacklight。 b. 调节亮度:使用以下命令来调节亮度:xbacklight -set <百分比>。百分比的范围从0到100,您可以根据自己的需要调整亮度级别。例如,xbacklight -set 50将把亮度设置为50%。 4. 使用扩展程序:您还可以安装一些扩展程序来更方便地调节亮度。例如,Brightness Controller是一款受欢迎的GUI应用程序,可通过滑块调节亮度。 无论您选择哪种方法,都可以根据自己的偏好来调节CentOS 7的亮度。 ### 回答3: 要在CentOS 7上调节亮度,您可以尝试以下方法: 方法一:使用亮度调节键 某些笔记本电脑或外接显示器上可能有专门的亮度调节键。您可以使用这些键来提高或降低显示器的亮度。这适用于大多数情况。 方法:使用xrandr命令 1. 运行命令`xrandr -q`来列出所有连接的显示器及其详细信息。 2. 找到你要调节亮度的显示器的名称,通常以"eDP"或"DP"开头。 3. 运行命令`xrandr --output <显示器名称> --brightness <亮度值>`,将"<显示器名称>"替换为实际的显示器名称,"<亮度值>"替换为介于0.1和1.0之间的亮度值。值越小,显示器越暗。 方法三:使用xbacklight命令 1. 确保已安装xbacklight命令。如果没有安装,可以通过运行`sudo yum install xbacklight`来安装。 2. 运行命令`xbacklight -set <亮度值>`,将"<亮度值>"替换为介于0和100之间的亮度值。 方法四:使用brightnessctl命令 1. 确保已安装brightnessctl命令。如果没有安装,可以通过运行`sudo yum install brightnessctl`来安装。 2. 运行命令 `brightnessctl -d <显示器路径> s <亮度值>` ,将"<显示器路径>"替换为实际显示器的路径,"<亮度值>"替换为介于0和最大亮度之间的实际亮度值。 无论您选择哪种方法,请确保按照准确的步骤操作。这些方法都可以帮助您在CentOS 7上调节亮度
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值