1

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

我对此有两个问题:

  1. 如果我使用 fillAfter(true),onclick 将不会被带到新位置。
  2. 如果使用 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);      
4

1 回答 1

2

问题是 Android 只会将按钮的图像动画到新位置。

这意味着 onClick 区域停留在旧位置。您还需要在动画结束时更改按钮的位置,以将整个按钮移动到新位置,而不仅仅是其视图。

于 2012-04-13T08:45:05.220 回答