2013-10-24 4 views
0

Я хочу сделать анимацию, как сердцебиение, одно изображение быстро меняет его АЛЬФА от 0 до 1 и медленно от 1 до 0. Я определяю это в файле XML.Как создать набор циклов ObjectAnimator?

<?xml version="1.0" encoding="utf-8"?> 
<set xmlns:android="http://schemas.android.com/apk/res/android" 
    android:ordering="sequentially"> 
    <objectAnimator 
     android:propertyName="alpha" 
     android:valueFrom="0" 
     android:valueTo="1" 
     android:valueType="floatType" 
     android:duration="700"/> 
    <objectAnimator 
     android:propertyName="alpha" 
     android:valueFrom="1" 
     android:valueTo="0" 
     android:valueType="floatType" 
     android:duration="1500"/> 
</set> 

и я использую их в Java-коде.

private void cursorHeartBeatAnimation() { 
    Animator animator = AnimatorInflater.loadAnimator(this, R.animator.cursor_heartbeat); 
    animator.setTarget(this.cursor); 
    animator.setStartDelay(1500); 
    animator.start(); 
} 

и я хочу позволить им играть все время, как это сделать?

ответ

-4

Попробуйте setRepeatMode(int)

private void cursorHeartBeatAnimation() { 
Animator animator = AnimatorInflater.loadAnimator(this, R.animator.cursor_heartbeat); 
animator.setRepeatMode(Animation.INFINITE); 
animator.setStartDelay(1500); 
animator.start(); 

}

+0

@ _ @, мое затмение не показывают 'animator' есть метод' setRepeatMode (INT) '. – Kross

0

Используйте "repeatMode" атрибут "установить".

<?xml version="1.0" encoding="utf-8"?> 
<set xmlns:android="http://schemas.android.com/apk/res/android" 
    android:repeatMode="restart" 
    android:ordering="sequentially"> 
    <objectAnimator 
     android:propertyName="alpha" 
     android:valueFrom="0" 
     android:valueTo="1" 
     android:valueType="floatType" 
     android:duration="700"/> 
    <objectAnimator 
     android:propertyName="alpha" 
     android:valueFrom="1" 
     android:valueTo="0" 
     android:valueType="floatType" 
     android:duration="1500"/> 
</set> 

Или вы можете это программно:

Animator animator = AnimatorInflater.loadAnimator(this, R.animator.your_animation); 
     animator.setTarget(view); 
     animator.addListener(new Animator.AnimatorListener() { 
      @Override 
      public void onAnimationStart(Animator animation) { 

      } 

      @Override 
      public void onAnimationEnd(Animator animation) { 
       animation.start(); 
      } 

      @Override 
      public void onAnimationCancel(Animator animation) { 

      } 

      @Override 
      public void onAnimationRepeat(Animator animation) { 

      } 
     }); 
     animator.start(); 
Смежные вопросы