Наблюдаемая задержка игнорирует настройки анимации устройства - PullRequest
0 голосов
/ 27 июня 2018

Любой телефон Android имеет опции разработчика для изменения скорости анимации. Масштаб анимации окна, масштаб анимации перехода и масштаб длительности аниматора - вот три параметра, о которых я говорю.

Приведенный ниже фрагмент кода игнорирует ваши настройки:

.delay(200, TimeUnit.MILLISECONDS).subscribe

Код игнорирует настройки анимации, поскольку «задержка» не связана с анимацией. В моем коде это так.

Как я могу получить этот код в моем приложении для масштабирования в соответствии с настройками масштаба анимации параметров разработчика устройства?

Ответы [ 2 ]

0 голосов
/ 27 июня 2018

Итак, я узнал, как получить системные настройки для множителя ...

.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);
}

... но это не только не решает основную проблему, с которой я столкнулся, но и вовсе не является хорошим способом решить эту проблему. Я думаю, что я должен просто удалить вопрос на этом этапе.

0 голосов
/ 27 июня 2018

Do not привязывает ваш код к анимации с использованием задержки в миллисекундах. Хотя это простое решение, задержка или продолжительность анимации могут отличаться от значения, установленного для него. Вместо этого вы можете использовать обратные вызовы слушателей анимации.

...