2013-04-25 1 views
1

Я работал над анимированным эффектом на Android, я хотел бы знать, есть ли другой способ постепенного увеличения/уменьшения скорости анимации?Постепенно увеличивайте/уменьшайте скорость анимации? [Android]

Можно ли указать, как первая 3-секундная скорость изменения была медленной, а остальная скорость прошла быстро?

ответ

5

Использовать Interpolator. В вашем случае я рекомендую бы AccelerateDecelerateInterpolator

Animation anim = AnimationUtils.loadAnimation(this, R.anim.your_animation); 
anim.setInterpolator(new AccelerateDecelerateInterpolator()); 
image.startAnimation(anim); 

Что касается интерпол, вы можете создать свой собственный!

public class MyInterpolator extends Interpolator { 

    public MyInterpolator(int valueCount) { 
     super(valueCount); 
    } 

    public float getInterpolation (float input) { 
     return (float)(Math.cos((input + 1) * Math.PI)/2.0f) + 0.5f; 
    } 
} 

Используя Wolfram Alpha, вы можете играть с параметрами.

+0

Прохладный, но как насчет его запуска с AnimatorSet? – Roylee

+1

'AnimatorSet' имеет' setInterpolator() 'также. – laalto

+0

@laalto да я видел это сейчас :) Но как я читал из AccelerateDecelerateInterpolator(), мы, похоже, не можем настроить скорость скорости? – Roylee