注册onclick以获取动画ImageView

时间:2014-09-03 21:24:02

标签: android onclick android-animation

我有一个ImageView我使用翻译动画进行动画制作,无限制地将我的图像放到屏幕上。我想注册对ImageView进行的触摸,但是除非我单击ImageView原始位置,否则永远不会调用我的onClick处理程序。

有什么方法可以确定点击动画图像的时间

2 个答案:

答案 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);