MTK在android P上会出现在设置锁屏滑动时候,会出现快速灭屏亮屏闪亮现象。

在开发者模式关掉动画时不会出现此问题(Keyguard Scrim动画问题)

解决办法:setDuration(0),使keyguard scrim动画关闭,逻辑请打上callback查看。

堆栈打印参考: Android源码开发基本命令

/frameworks/base/packages/SystemUI/src/com/android/systemui/statusbar/phone/ScrimController.java
protected void updateScrims() {setScrimInFrontAlpha(mCurrentInFrontAlpha);setScrimBehindAlpha(mCurrentBehindAlpha);dispatchScrimsVisible();
}private void setScrimBehindAlpha(float alpha) {setScrimAlpha(mScrimBehind, alpha);
}private void setScrimInFrontAlpha(float alpha) {setScrimAlpha(mScrimInFront, alpha);
}private void setScrimAlpha(ScrimView scrim, float alpha) {if (alpha == 0f) {scrim.setClickable(false);} else {// Eat touch events (unless dozing or pulsing).scrim.setClickable(mState != ScrimState.AOD && mState != ScrimState.PULSING);}updateScrim(scrim, alpha);
}private void updateScrim(ScrimView scrim, float alpha) {...if (wantsAlphaUpdate || wantsTintUpdate) {if (mAnimateChange) {startScrimAnimation(scrim, currentAlpha);} else {// update the alpha directlyupdateScrimColor(scrim, alpha, getCurrentScrimTint(scrim));onFinished();}} else {onFinished();}
}private void startScrimAnimation(final View scrim, float current) {ValueAnimator anim = ValueAnimator.ofFloat(0f, 1f);final int initialScrimTint = scrim instanceof ScrimView ? ((ScrimView) scrim).getTint() :Color.TRANSPARENT;anim.addUpdateListener(animation -> {final float startAlpha = (Float) scrim.getTag(TAG_START_ALPHA);final float animAmount = (float) animation.getAnimatedValue();final int finalScrimTint = getCurrentScrimTint(scrim);final float finalScrimAlpha = getCurrentScrimAlpha(scrim);float alpha = MathUtils.lerp(startAlpha, finalScrimAlpha, animAmount);alpha = MathUtils.constrain(alpha, 0f, 1f);int tint = ColorUtils.blendARGB(initialScrimTint, finalScrimTint, animAmount);updateScrimColor(scrim, alpha, tint);dispatchScrimsVisible();});anim.setInterpolator(mInterpolator);anim.setStartDelay(mAnimationDelay);anim.setDuration(mAnimationDuration);   //setDuration(0),使keyguard scrim动画关闭,就不会出现android p快速灭屏出现闪屏 anim.addListener(new AnimatorListenerAdapter() {@Overridepublic void onAnimationEnd(Animator animation) {onFinished();scrim.setTag(TAG_KEY_ANIM, null);dispatchScrimsVisible();if (!mDeferFinishedListener && mOnAnimationFinished != null) {mOnAnimationFinished.run();mOnAnimationFinished = null;}}});// Cache alpha values because we might want to update this animator in the future if// the user expands the panel while the animation is still running.scrim.setTag(TAG_START_ALPHA, current);scrim.setTag(TAG_END_ALPHA, getCurrentScrimAlpha(scrim));scrim.setTag(TAG_KEY_ANIM, anim);anim.start();
}

Android P Keyguard Scrim快速灭屏亮屏闪亮相关推荐

  1. Android 屏幕灭屏亮屏广播,屏幕灭屏亮屏监听,广播实现按键监听

    service 类注册广播进行监听 /*** 作者:created by meixi* 邮箱:13164716840@163.com* 日期:2018/9/27 09*/ public class S ...

  2. 【我的OpenGL学习进阶之旅】解决关于在OpenGL ES开发中GLSurfaceView调用了onPause和onResume方法,然后息屏亮屏之后GLSurfaceView黑屏的问题

    目录 一.问题描述 二.分析问题 2.1 排查onPause和onResume方法 2.2 注释掉onPause和onResume方法 2.3 GLSurfaceView 关于Activity生命周期 ...

  3. android 11.0 12.0控制屏幕亮屏和灭屏操作

    在11.0 12.0的产品开发中, 需要提供亮屏和灭屏的接口在8.0以后系统对于屏幕亮灭屏做了限制,直接调用亮屏和灭屏的方法就调不到了, 接下来就来看PowerManage.java类 这个是一个电源 ...

  4. Android 9.0 代码实现对屏幕亮屏和灭屏的控制和显示电量百分比

    目录 1.概述 2.代码实现对屏幕亮屏和灭屏的控制和显示电量百分比的核心类

  5. Android 息屏亮屏代码实现

    1,实现效果 : 2,实现代码 [1]创建接收者 package com.xiaoshuai.www.screendemo;import android.app.admin.DeviceAdminRe ...

  6. Android 监听屏幕熄屏亮屏和主动唤醒屏幕

    // 监听熄屏和亮屏需要添加权限 <uses-permission android:name="android.permission.DEVICE_POWER"/> & ...

  7. Android 亮屏流程分析

    https://blog.csdn.net/FightFightFight/article/details/79808100 相关文章: [Android Framework] 8.1 PowerMa ...

  8. Android 8.1 PowerManagerService分析(四)——亮屏流程分析

    欢迎大家关注我的掘金帐号 我会在那里定期更新最新版本的Android Framework源码分析! 相关文章: [Android Framework] 8.1 PowerManagerService分 ...

  9. Android手机亮屏流程分析

    极力推荐Android 开发大总结文章:欢迎收藏程序员Android 力荐 ,Android 开发者需要的必备技能 注:文章转于网络,点击查看原文 PowerManagerService 之前系列文章 ...

最新文章

  1. IBM一周内拥有10万Lotus Symphony用户
  2. 【干货】产品运营中极具战略意义的环节:数据分析
  3. 【论文解读】基于关系感知的全局注意力
  4. 恒大全国降价,最低74折,接下来会有其他楼盘跟进降价吗?
  5. 基于.net standard 的动态编译实现
  6. C语言中枚举enum的用法
  7. VxWorks程序一下载就停住了
  8. html table datasrc,table_data_tables.html
  9. 这些面试用例设计,你肯定遇到过(朋友圈、电梯、发红包、支付)
  10. 初学RubyOnRails的推荐书籍
  11. linux能yum装mcafee吗,Redhat(64位)安装Mcafee步骤
  12. 怎么对网站ICP备案和公安备案流程
  13. 整车控制器(VCU)开发 之 概述
  14. Python 之关键字(保留字)
  15. 【scala】获取当前时间的上一个自然周以及自然周集合;获取当前时间的上一个自然月以及自然月的第一天与最后一天
  16. 每天叫醒的不是闹钟而是励志文章梦想
  17. 在Markdown编辑器中输入上标下标
  18. 网络安全——DDOS攻击
  19. 下载了免费的txt电子书,如何用IOS苹果手机打开?
  20. tp5源码分析之网络请求

热门文章

  1. Origin画图技巧之设置框图默认设置
  2. 通用AI元素识别在UI自动化测试的最佳实践
  3. 工作手册 会计核算制度 目录 1. 会计核算管理制度 1 2. 会计档案管理办法 4 1.会计核算管理制度 8. 1.采取借贷记账法记账,采用权责发生制,即凡是收益已经实现,用已经发生,不论款
  4. 流量贵如金,APP推广如何迈好第一步?技术和策略缺一不可
  5. 分享一下前端浏览的一些网址记录
  6. 关于(广义)代数特征值问题的一点注记
  7. html5互动场景制作系统,春哥技术博客高仿易企秀H5场景应用制作平台源码V1.0正式版发布...
  8. 软件漏洞之Zabbix
  9. [足式机器人]Part1 运动控制的替代方法Ch06——【Legged Robots that Balance 读书笔记】
  10. linux终端命令行删除当前光标之后内容ctrl +k