2013-03-28 2 views
0

Привет, у меня есть проблема с анимацией, на самом деле я хочу угаснуть свой ImageView, пока он меняет его ресурс. Это не работает, я могу изменить ресурс, но без анимации.Анимация не работает с изменением ImageView Drawable

private void checkX() { 
    // TODO Auto-generated method stub 
    switch (x) { 
    case (1): { 
     startingAnimation(); 
     xImg.setImageResource(R.drawable.test_uno); 
     endingAnimation(); 
     break; 
    } 
    case (2): { 
     startingAnimation(); 
     xImg.setImageResource(R.drawable.test_due); 
     endingAnimation(); 
     break; 
    } 
    case (3): { 
     startingAnimation(); 
     xImg.setImageResource(R.drawable.test_tre); 
     endingAnimation(); 
     break; 
    } 
    case (4): { 
     startingAnimation(); 
     xImg.setImageResource(R.drawable.test_quattro); 
     endingAnimation(); 
     break; 
    } 
    case (5): { 
     x = 1; 
     checkX(); 
     break; 
    } 
    case (0): { 
     x = 4; 
     checkX(); 
     break; 
    } 
    } 
} 


private void endingAnimation() { 
    // TODO Auto-generated method stub 
    ObjectAnimator animation2 = ObjectAnimator.ofFloat(xImg, "alpha", 255); 
    animation2.setDuration(1000); 
    animation2.start(); 

} 

private void startingAnimation() { 
    // TODO Auto-generated method stub 
    ObjectAnimator animation = ObjectAnimator.ofFloat(xImg, "alpha", 0); 
    animation.setDuration(1000); 
    animation.start(); 
} 

checkX вызывается каждый раз, когда я нажимаю кнопку (которая добавляет или вычитает от 1 до X).

Как я могу изменить как анимацию, так и изображение ImageView?

ответ

0

Попробуйте изменить источник изображения, когда вызывается анимация onAnimationEnd. Например:

animation.addListener(new AnimatorListener() { 

    @Override 
    public void onAnimationStart(Animator animation) { } 

    @Override 
    public void onAnimationRepeat(Animator animation) { } 

    @Override 
    public void onAnimationEnd(Animator animation) { 
     // change your ImageView's source here 
    } 

    @Override 
    public void onAnimationCancel(Animator animation) { } 
}); 
+0

Большое вам спасибо! – Giamme

0

Примените анимацию на вашем ImageView и установите для нее AnimListener. на конце анимации изменить взгляды ресурса и установить замирание в анимации на нем

Для замирания в анимации

Animation fadeIn = new AlphaAnimation(0, 1); 
      fadeIn.setInterpolator(new DecelerateInterpolator()); 
      fadeIn.setDuration(1000); 
      final AnimationSet animation = new AnimationSet(false); 
      animation.addAnimation(fadeIn); 

Для исчезать из анимационного

Animation fadeOut = new AlphaAnimation(1, 0); 
       fadeOut.setInterpolator(new AccelerateInterpolator()); 
       fadeOut.setDuration(300); 
       final AnimationSet animation = new AnimationSet(false); 
       animation.addAnimation(fadeOut); 

То, как вы реализуете у слушателя на анимации

fadeout.setAnimationListener(new Animation.AnimationListener(){ 

      @Override 
      public void onAnimationStart(Animation arg0) { 
      }   

      @Override 
      public void onAnimationRepeat(Animation arg0) { 
      }   

      @Override 
      public void onAnimationEnd(Animation arg0) { 
       //change resource of Imageview here    
      } 
     }); 
+0

вы можете принять ответ, если он был полезным ... Глагом, чтобы помочь! chears –

Смежные вопросы