有客户要求界面跳转风格要统一,第三方的APP无法控制,所以需要从系统层把Activity跳转动画禁用
frameworks/base/services/core/java/com/android/server/wm/WindowManagerService.java
mDisableTransitionAnimation = context.getResources().getBoolean(
com.android.internal.R.bool.config_disableTransitionAnimation);
frameworks/base/services/core/java/com/android/server/wm/AppWindowToken.java
boolean applyAnimationLocked(WindowManager.LayoutParams lp, int transit, boolean enter,
boolean isVoiceInteraction) {
if (mService.mDisableTransitionAnimation || !shouldAnimate(transit)) {
if (DEBUG_APP_TRANSITIONS || DEBUG_ANIM) {
Slog.v(TAG_WM, "applyAnimation: transition animation is disabled or skipped."
+ " atoken=" + this);
}
cancelAnimation();
return false;
}
frameworks/base/core/res/res/values/config.xml
<bool name="config_disableTransitionAnimation">true</bool>
将属性值改为true,系统取消动画
这篇博客探讨了如何在Android系统层面统一界面跳转风格,由于无法控制第三方APP的动画,故需要通过修改系统代码来禁用Activity的过渡动画。在`WindowManagerService.java`中设置`config_disableTransitionAnimation`为true,可以阻止动画的执行,确保界面切换的一致性。此改动在`AppWindowToken.java`的`applyAnimationLocked`方法中生效。
477

被折叠的 条评论
为什么被折叠?



