Скорость анимации Android слишком низкая - PullRequest
3 голосов
/ 04 августа 2011

Я использую анимационный прослушиватель с настройками повторения INFINITE, и важно, чтобы каждый раз, когда он повторялся, вызывается функция onAnimationRepeat.

Все это хорошо работает, если продолжительность анимации установлена ​​на ~ 100 мс или выше.Любое меньшее значение, которое я установил (например, 30 мс), по-прежнему составляет около 100 мс.Я попробовал это на устройстве и на эмуляторе.

Я использую Alphaanimation, но я также пробовал другие типы анимации Android.

Есть ли способ заставить любую анимацию работать должным образом с установленной продолжительностьюоколо 50 мс и быстрее?

Ответы [ 2 ]

3 голосов
/ 04 августа 2011

AlphaAnimation является довольно ресурсоемкой анимацией по сравнению с другими "скользящими" анимациями.

Вы можете попробовать провести расследование с помощью TraceView , чтобы точно определить, где оно зависает.

Я подозреваю, что это просто издержки анимации, которые все замедляют.

Дайте TraceView шанс, доложите о результатах, и я посмотрю, смогу ли я дать дальнейший совет.

Надеюсь, это поможет!

0 голосов
/ 15 января 2018

Я знаю, что это старый, но для людей, гуглящих, как я сейчас.

Попробуйте добавить это в анимацию xml:

android: interpolator = "@ android: anim / accelerate_decelerate_interpolator"

Поправьте меня, если я ошибаюсь, но я думаю, что это работает как для Translate, так и для Alpha

Пример:

<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android">
<translate android:fromXDelta="0" android:toXDelta="100%p"
    android:interpolator="@android:anim/accelerate_decelerate_interpolator"
    android:duration="300"/>
</set>
...