我有一个ImageView我使用翻译动画进行动画制作,无限制地将我的图像放到屏幕上。我想注册对ImageView进行的触摸,但是除非我单击ImageView原始位置,否则永远不会调用我的onClick处理程序。
有什么方法可以确定点击动画图像的时间
答案 0 :(得分: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
答案 1 :(得分:0)
可能是因为你在动画之后并没有真正更新位置。
要实现这一点,只需在每次执行动画时调用setFillEnabled:
animation.setFillEnabled(true);