思路
由于灭屏场景下,为了性能需要适当的调整一些动画参数,对用户体验上影响不大。
故可以以下思路
1.缩短动画时间
2.去除灭屏前动画
修改DisplayPowerController
/frameworks/base/services/core/java/com/android/server/display/DisplayPowerController.java
--- a
+++ b/frameworks/base/services/core/java/com/android/server/display/DisplayPowerController.java
@@ -100,7 +100,10 @@ final class DisplayPowerController implements AutomaticBrightnessController.Call
// 缩短动画时间
- private static final int COLOR_FADE_OFF_ANIMATION_DURATION_MILLIS = 400;
+ private static final int COLOR_FADE_OFF_ANIMATION_DURATION_MILLIS = 20;
private static final int MSG_UPDATE_POWER_STATE = 1;
private static final int MSG_PROXIMITY_SENSOR_DEBOUNCED = 2;
@@ -1092,9 +1095,12 @@ final class DisplayPowerController implements AutomaticBrightnessController.Call
mPendingScreenOff = false;
mPowerState.dismissColorFadeResources();
} else if (performScreenOffTransition
- && mPowerState.prepareColorFade(mContext,
+ /*&& mPowerState.prepareColorFade(mContext,
mColorFadeFadesConfig ?
- ColorFade.MODE_FADE : ColorFade.MODE_COOL_DOWN)
+ ColorFade.MODE_FADE : ColorFade.MODE_COOL_DOWN) */
&& mPowerState.getScreenState() != Display.STATE_OFF) {
// Perform the screen off animation.
mColorFadeOffAnimator.start();