8

我有 2 ImageViews 从屏幕顶部翻译到底部。这些视图是从 xml 中提取的,并且动画是从 java 代码中添加的。动画效果很好,但onClickListener我在java代码中添加的似乎不起作用。我使用fillAfter动画的属性使图像在翻译后停留在它们的到达位置,但是这些图像不再可点击......但是,它们在翻译前的位置仍然可以点击......我看不出这个逻辑。有人可以给我一些建议吗?

4

1 回答 1

14

这是因为动画只影响小部件的绘制。但是,真正的位置不受影响-它仍然在前一个-。

为了克服这个问题,您需要通过安装动画监听器手动更新 ImageView 的布局参数,如下所示:

Animation.setAnimationListener(new AnimationListener() {
        public void onAnimationStart(Animation arg0) {

        }

        public void onAnimationRepeat(Animation arg0) {
            //TODO Auto-generated method stub
        }

        public void onAnimationEnd(Animation arg0) {
            android.widget.LinearLayout.LayoutParams params = new LayoutParams(
            android.widget.LinearLayout.LayoutParams.FILL_PARENT,
            android.widget.LinearLayout.LayoutParams.WRAP_CONTENT);
            params.topMargin = addLocationButton.getTop()-100;

            ImageView.setLayoutParams(params);
        }
        });
于 2011-01-24T11:21:15.840 回答