2014-07-22 35 views
1

我使用ImageView在屏幕上移動來動畫,但我希望它在完成動畫時變爲不可見(使其看起來像離開了屏幕)。如何在Android動畫中使ImageView不可見

這是我試過的代碼:

translate.setAnimationListener(new Animation.AnimationListener() { 
@Override 
public void onAnimationStart(Animation animation) { 
button.setText("Animation Started"); 


} 

@Override 
public void onAnimationEnd(Animation animation) { 
    brickimg.setVisibility(View.GONE);//This should make the ImageView invisible 

} 

@Override 
public void onAnimationRepeat(Animation animation) { 

} 
}); 

然而,動畫永遠不會結束。它卡在AnimationStart上,所以在這種情況下發生的唯一情況是按鈕的文本被更改。有誰知道如何讓動畫結束,還是讓動畫完成後ImageView變得不可見?

編輯 - 這是我用來做動畫的代碼:

int x=brickimg.getRight()-brickimg.getLeft(); 
    int y=brickimg.getBottom()-brickimg.getTop(); 
    final TranslateAnimation translate = new TranslateAnimation(
      Animation.ABSOLUTE,1000, Animation.ABSOLUTE, 
      x, Animation.ABSOLUTE,0, 
      Animation.ABSOLUTE,y);//How far it goes on the axis. The first x goes left, second x goes right, first y goes up, second goes down 
    translate.setDuration(300);//speed of the animation 
    translate.setFillEnabled(true); 
    translate.setFillAfter(true); 
    brickimg.startAnimation(translate); 
+0

你檢查,your_animation.setRepeatCount(0); ? –

+0

你也可以參考這個鏈接http://stackoverflow.com/questions/19921968/how-to-hide-images-after-animation-end-in-android – Minp

+0

你還可以分享代碼翻譯動畫的其他屬性設置? –

回答

0

您可以在AnimationEnd設置透明圖像..

@Override 
     public void onAnimationEnd(Animation animation) 
     { 
      v2.setImageResource(R.drawable.some_transparent_image); 

     } 
+0

問題不在於隱藏imageView。問題中提到的問題是動畫循環無限。 –

0

這取決於你在做什麼樣的動畫。如果您正在使用View Animation類。那麼您創建的動畫不會在初始圖像上完成。例如,從A點到B點的圖像上的翻譯動畫會創建上述動畫。但是原始圖像仍然卡住同一個地方。即在A點。一旦動畫結束,它將返回到那裏。如果你想要影響ImageView的動畫,你需要使用更多的自定義和更難以實現Property Animation。如果你的問題僅僅是使視圖看不見,那麼你的方法應該已經工作。否則通過這些文檔一次