动画后无法点击 TranslateAnimated ImageView [Android]
Posted
技术标签:
【中文标题】动画后无法点击 TranslateAnimated ImageView [Android]【英文标题】:TranslateAnimated ImageView not clickable after animation [Android] 【发布时间】:2011-03-24 18:23:15 【问题描述】:我有 2 个ImageView
s,我从屏幕顶部翻译到底部。这些视图是从 xml 中提取的,并且动画是从 java 代码中添加的。动画效果很好,但是我在 java 代码中添加的onClickListener
似乎不起作用。我使用动画的fillAfter
属性使图像在翻译后停留在它们到达的位置,但是这些图像不再可点击......但是,它们在翻译前的位置仍然可以点击......
我看不出这其中的逻辑。有人可以给我一些建议吗?
【问题讨论】:
好的,在这里找到我的答案:***.com/questions/2125694/… 现在我只需要正确设置它的参数以使其位置正确...... 但是,这似乎与 setFillAfter 不兼容。我添加以删除它以使其正常工作。 我遇到了这个问题,经过一番研究,我解决了。 [这里可以找到答案][1] [1]:***.com/questions/18333269/… 【参考方案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();以上是关于动画后无法点击 TranslateAnimated ImageView [Android]的主要内容,如果未能解决你的问题,请参考以下文章