Сделайте так, чтобы ScaleAnimation двигалась равномерно, или выясните, как она движется - PullRequest
0 голосов
/ 19 августа 2010

Поэтому я использовал ScaleAnimation, чтобы уменьшить временную шкалу в игре.Когда текущий уровень был закончен, я хотел, чтобы шкала времени быстро сократилась до дна.Так что я сделал, что если прошло 30% времени, я предположил, что 30% времени исчезли.Поэтому я только запустил новую ScaleAnimation, которая начиналась с 70% от исходного размера таймбаров, предполагая, что это будет выглядеть как одна плавная анимация, которая ускоряется после завершения уровня.К сожалению, масштабная анимация движется неравномерно.Он движется медленнее в начале и в конце и быстрее в середине.

Так что теперь у меня есть три варианта: либо я выясняю, как заставить ScaleAnimation двигаться с равномерной скоростью, либо я вычисляю формулунасколько быстро он движется, поэтому я могу точно определить, насколько он велик, когда воспроизводится определенный процент анимации.Или я нахожу более разумный способ сделать это время.Предложения?:)

Ура,

1 Ответ

2 голосов
/ 19 августа 2010

Метод, который android использует для создания анимации движения, определяется тем, какой интерполятор вы используете. С сайта Android :

Вы можете определить, как преобразование применяется со временем путем назначения Interpolator. Android включает в себя несколько Подклассы интерполятора, которые определяют различные кривые скорости: например, AccelerateInterpolator сообщает преобразование, чтобы начать медленно и быстро вверх. Каждый из них имеет значение атрибута которые могут быть применены в XML.

Варианты выбора ( с сайта Android снова ):

AccelerateDecelerateInterpolator, AccelerateInterpolator, AnticipateInterpolator, AnticipateOvershootInterpolator, BounceInterpolator, CycleInterpolator, DecelerateInterpolator, LinearInterpolator, OvershootInterpolator

Итак, из того, что вы описываете, вы, вероятно, захотите выбрать LinearInterpolator, который будет выглядеть примерно так:

   <scale
          android:interpolator="@android:anim/linear_interpolator"
          android:fromXScale="1.0"
          android:toXScale="1.4"
          android:fromYScale="1.0"
          android:toYScale="0.6"
          android:pivotX="50%"
          android:pivotY="50%"
          android:fillAfter="false"
          android:duration="700" />

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...