我有一個ImageView動畫使用翻譯動畫無限下降我的圖像在屏幕上。我想註冊觸及ImageView的圖像,但是我的onClick處理程序永遠不會被調用,除非我點擊ImageView的原始位置。註冊onclick動畫ImageView
有什麼方法來識別動畫圖像被點擊
我有一個ImageView動畫使用翻譯動畫無限下降我的圖像在屏幕上。我想註冊觸及ImageView的圖像,但是我的onClick處理程序永遠不會被調用,除非我點擊ImageView的原始位置。註冊onclick動畫ImageView
有什麼方法來識別動畫圖像被點擊
一個翻譯動畫是一個視圖動畫只會改變其視圖視覺繪製,而不是實際位置。您可能需要切換到使用其中一個屬性動畫,或者編寫一個自定義視圖動畫,它使用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
這可能是因爲你並沒有真正更新動畫後的位置時。
爲了實現這個目標,只需撥打setFillEnabled每次執行動畫:
animation.setFillEnabled(true);
這不起作用 – user2687482 2014-09-03 23:04:37
謝謝你惠特尼。我使用了一個objectAnimator,它工作得很好:-) – user2687482 2014-09-03 23:04:20