我想要得到的“动画长比例/速度”(从开发者选项),以便在我的应用程序(负载和基于实时动画)的一些流程来设置正确的动画速度。
或者说,有没有什么办法来覆盖速度为默认/ 1X(如果设置好的以0.5X的用户)不写很多情况下? (换言之应用基于动画速度)
我应该关心这个问题,这是一个常见的问题?
答案是(就像我在日志中发布该评论):
最后,我发现这个代码,帮助我得到用户当前的动画速度规模。
Settings.Global.getFloat(getContentResolver(),
Settings.Global.ANIMATOR_DURATION_SCALE, 1.0f);
对于系统应用(隐藏类)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();