如何以编程方式获得android动画缩放速度?

时间:2017-01-20 19:03:57

标签: android android-animation

我希望获得" 动画师的持续时间刻度/速度" (来自开发者选项),以便在我的应用程序的某些进程中设置正确的动画速度(加载和基于实时的动画)。

或者,有没有办法将速度覆盖到默认值/ 1x(如果用户设置为0.5x)不写多个案例? (换句话说基于应用程序的动画速度

我是否应该关心这个问题,这是一个常见的问题吗?

2 个答案:

答案 0 :(得分:0)

答案是(就像我在帖子下发表的评论一样):

  

最后,我找到了这段代码,可以帮助我获得用户当前的动画速度比例。

Settings.Global.getFloat(getContentResolver(),
Settings.Global.ANIMATOR_DURATION_SCALE, 1.0f);

答案 1 :(得分:-1)

对于SYSTEM应用程序(隐藏类) IWindowManager有一种方法可以获得所有三种类型的动画比例:

try {
    IWindowManager iwm = IWindowManager.Stub.asInterface(ServiceManager.getService("window"));
    float windowAnimationScale = iwm.getAnimationScale(0);
    float transitionAnimationScale = iwm.getAnimationScale(1);
    float animatorDurationScale = iwm.getAnimationScale(2);
} catch (RemoteException ignore) { }

对于一般应用,如果只需要动画制作者持续时间刻度,只需调用此静态方法:

float animatorDurationScale = ValueAnimator.getDurationScale();