2014-09-03 62 views
1

我有一個ImageView動畫使用翻譯動畫無限下降我的圖像在屏幕上。我想註冊觸及ImageView的圖像,但是我的onClick處理程序永遠不會被調用,除非我點擊ImageView的原始位置。註冊onclick動畫ImageView

有什麼方法來識別動畫圖像被點擊

回答

1

一個翻譯動畫是一個視圖動畫只會改變其視圖視覺繪製,而不是實際位置。您可能需要切換到使用其中一個屬性動畫,或者編寫一個自定義視圖動畫,它使用setX或setY特別更新視圖的位置。對於

示例代碼:

public void doCustomAnimation(){ 
    final Float startingPoint= mLittleChef.getX(); 
    Animation animation = new Animation() 
     { 
     @Override 
     protected void applyTransformation(float interpolatedTime, Transformation t) { 
       mLittleChef.setX(startingPoint - (int)(startingPoint/2 * interpolatedTime)); 
     } 

     }; 
    animation.setAnimationListener(new AnimationListener(){ 
    @Override 
    public void onAnimationEnd(Animation animation) { 
     simpleLock= false; 
    } 
    @Override 
    public void onAnimationRepeat(Animation animation) { 
     // TODO Auto-generated method stub 
    } 
    @Override 
    public void onAnimationStart(Animation animation) { 
     // TODO Auto-generated method stub 
    } 
    }); 
    animation.setInterpolator(new LinearInterpolator()); 
    animation.setRepeatCount(1); 
    animation.setRepeatMode(Animation.REVERSE); 
    animation.setDuration(mShortAnimationDuration/2); 
    mLittleChef.startAnimation(animation); 
} 

你可以閱讀更多有關視圖動畫這裏:HERE

如果你想使用屬性動畫:HERE

+0

謝謝你惠特尼。我使用了一個objectAnimator,它工作得很好:-) – user2687482 2014-09-03 23:04:20

0

這可能是因爲你並沒有真正更新動畫後的位置時。

爲了實現這個目標,只需撥打setFillEnabled每次執行動畫:

animation.setFillEnabled(true);   
+1

這不起作用 – user2687482 2014-09-03 23:04:37