我希望获得" 动画师的持续时间刻度/速度" (来自开发者选项),以便在我的应用程序的某些进程中设置正确的动画速度(加载和基于实时的动画)。
或者,有没有办法将速度覆盖到默认值/ 1x(如果用户设置为0.5x)不写多个案例? (换句话说基于应用程序的动画速度)
我是否应该关心这个问题,这是一个常见的问题吗?
答案 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();