SystemUI 锁屏解锁后去除蒙层(黑黑的一层)

2020-04-25  本文已影响0人  Lindahuanzi

这两天要修改一个需求就是去除锁屏解锁后的蒙层(即解开锁后黑黑的蒙蒙的一层),之前就有想处理这个效果,把他去掉但是没有找到位置,这两天又有了这个需求了,解决了,记录一下。

其中修改的地方为:/src/com/android/systemui/keyguard/KeyguardViewMediator.java

private void tryKeyguardDone() {

        if (KeyguardConstants.DEBUG_KEYGUARD_PROCESS){

            StringBuilder builder = new StringBuilder();

            builder.append("tryKeyguardDone mKeyguardDonePending=");

            builder.append(mKeyguardDonePending);

            builder.append("; mHideAnimationRun=");

            builder.append(mHideAnimationRun);

            builder.append("; mHideAnimationRunning=");

            builder.append(mHideAnimationRunning);

            Log.d(TAG, builder.toString());

        }

        if (!mKeyguardDonePending && mHideAnimationRun && !mHideAnimationRunning) {

            //wangdy add for setting the scrimview's alpha_2019-06-27[start]

            mStatusBarKeyguardViewManager.setScrimBehindViewAlpha(0f);

            //wangdy add for setting the scrimview's alpha_2019-06-27[end]

            handleKeyguardDone();

        } else if (!mHideAnimationRun) {

            mHideAnimationRun = true;

            mHideAnimationRunning = true;

            mStatusBarKeyguardViewManager.startPreHideAnimation(mHideAnimationFinishedRunnable);

        }

    }

这边加注释的就是我添加的修改的地方

下边是调用的引用添加的地方:

/src/com/android/systemui/statusbar/phone/StatusBarKeyguardViewManager.java

//wangdy add for setting the scrimview's alpha_2019-06-27

    public void setScrimBehindViewAlpha(float alpha){

        if(mStatusBar!=null && mStatusBar.mScrimController!=null && mStatusBar.mScrimController.mScrimBehind != null) {

            mStatusBar.mScrimController.mScrimBehind.setViewAlpha(alpha);

        }

    }

这样就可以,其中上边添加的地方是系统在”解锁完成向上滑动的动画“后修改这个ScrimView的透明度alpha让它变成0,这样其实后边还有个系统的设置的透明度动画,所以你看到的解锁后边的蒙层就是上滑动动画后的这里有个耗时,然后到的蒙层动画,所以如果提前把这个蒙层设置为透明度为0,就不会有动画了,提前设置为0,就看不见蒙层了。

上一篇 下一篇

猜你喜欢

热点阅读