我应该怎么做才能将imageButton移到新的位置并保留OnClick事件?

我对此有两个问题:


如果我使用fillAfter(true),则onclick不会被带到新位置。
如果使用setAnimationListener(onAnimationEnd)并调用layout()将ImageButton移至新位置,则ImageButton将回到新的起始位置,为什么?


代码在这里:

    tsla = new TranslateAnimation(0.0f,(float) (imgWidth * 0.45)-wh/2,0.0f,(float) (imgHeight * 0.566666667)-wh/2);
    tsla.setDuration(sleepX);

    tsla.setAnimationListener(new AnimationListener(){
        public void onAnimationStart(Animation arg0) {
        }
        public void onAnimationEnd(Animation arg0) {
             imgBtnChengdu.layout(
                (int) (imgWidth * 0.45),
                (int) (imgHeight * 0.566666667),
                (int) (imgWidth - wh - imgWidth * 0.45),
                (int) (imgHeight - wh - imgHeight * 0.566666667)
                );
        }
        public void onAnimationRepeat(Animation arg0) {
        }
    });

    imgBtnChengdu.setAnimation(tsla);

最佳答案

问题在于,Android只会将“按钮的图像”动画到新位置。

这意味着onClick区域停留在旧位置。您还需要在“动画”末尾更改按钮的位置,以将整个按钮(而不只是视图)移动到新位置。

07-27 19:18