【问题标题】:TranslateAnimated ImageView not clickable after animation [Android]动画后无法点击 TranslateAnimated ImageView [Android]
【发布时间】:2011-03-24 18:23:15
【问题描述】:

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

【问题讨论】:

标签: android animation clickable


【解决方案1】:

这是因为动画只影响小部件的绘制。但是,实际位置不受影响-仍然是上一个-。

要解决这个问题,需要手动更新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);
        }
        });

【讨论】:

  • 不好,因为在onAnimationEnd动画之后,当图片从“setLayoutParams(params);”获取位置时然后我看到一个闪烁。我补充说,从属性到YDelta的百分比很难设置topMargin
  • 要消除闪烁,您可以使用animation.reset(); .clearAnimation();
猜你喜欢
  • 1970-01-01
  • 2017-08-30
  • 1970-01-01
  • 1970-01-01
  • 2011-12-07
  • 2011-01-03
  • 2012-12-14
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多