使 ObjectAnimator 动画持续时间独立于开发人员选项中的全局动画师持续时间比例设置

2023-12-23

当恒定且不可修改的速度至关重要时,如何使 ObjectAnimator 独立于“Animator 持续时间比例”开发人员选项设置?


我注意到对此没有明确的答案。您可以通过反射调用隐藏的 API 来完成此操作:

// Get duration scale from the global settings.
float durationScale = Settings.Global.getFloat(context.getContentResolver(),
                        Settings.Global.ANIMATOR_DURATION_SCALE, 0);

// If global duration scale is not 1 (default), try to override it
// for the current application.
if (durationScale != 1) {
  try {
    ValueAnimator.class.getMethod("setDurationScale", float.class).invoke(null, 1f);
    durationScale = 1f;
  } catch (Throwable t) {
    // It means something bad happened, and animations are still
    // altered by the global settings. You should warn the user and
    // exit application.
  }
}

欲了解更多详细信息,您可以查看这篇博文:https://arpytoth.com/2016/12/20/android-objectanimator-independent-of-global-animator-duration/ https://arpytoth.com/2016/12/20/android-objectanimator-independent-of-global-animator-duration/

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

使 ObjectAnimator 动画持续时间独立于开发人员选项中的全局动画师持续时间比例设置 的相关文章

随机推荐