首页 > 解决方案 > 可观察延迟忽略设备动画设置

问题描述

任何 Android 手机都有开发者选项来修改动画速度。Window 动画比例、Transition 动画比例和 Animator 持续时间比例是我说的三个设置。

下面的代码片段会忽略您的设置:

.delay(200, TimeUnit.MILLISECONDS).subscribe

代码忽略动画设置,因为“延迟”与动画没有内在联系。就我的代码而言,它是。

如何根据设备的开发人员选项动画缩放设置在我的应用中获取此代码以进行缩放?

标签: androidrx-javaandroid-animationobservabledelay

解决方案


所以我发现了如何获取乘数的系统设置......

.delay(getScaledDelayDuration(200), TimeUnit.MILLISECONDS).subscribe

private long getScaledDelayDuration(long delay) {
    float multiplier =  Settings.System.getFloat(
            this.getContext().getContentResolver(),
            Settings.System.TRANSITION_ANIMATION_SCALE, 1);
    return (long) (multiplier * delay);
}

...但这不仅不能解决我遇到的根本问题,而且根本不是解决这个问题的好方法。我想我现在应该删除这个问题。


推荐阅读