用于动画视图的OnclickListener

时间:2012-02-14 19:46:18

标签: android android-animation

在同一问题上发现了很多问题。

How to set OnClickListener on the ImageView after rotation animation

How to write the onclick listener for a view after animation?

我也有同样的问题,有什么建议吗?

1 个答案:

答案 0 :(得分:3)

你应该写一个关于你的具体问题的简洁问题,而不仅仅是指出其他问题。与之相关的两个问题并不完全清楚。

我认为您的问题是在将动画(例如TranslateAnimation)应用于View后,View不再响应其新位置的触摸事件。原因是因为View没有在布局参数方面移动到新位置,而是应用了转换。

解决方案非常简单:动画完成后,立即将View移动到新位置。您可以设置myAnimation.setFillAfter() = false,并设置一个侦听器,以便在动画结束时将View物理移动到目标位置:

myAmazingAnimation.setFillAfter() = false;
myAmazingAnimation.setAnimationListener(new Animation.AnimationListener(){

                @Override
                public void onAnimationEnd(Animation animation) {
                          // Now actually move the View using LayoutParams
                }

                @Override
                public void onAnimationRepeat(Animation animation) {                    
                }

                @Override
                public void onAnimationStart(Animation animation) {
                }

            });

另一个变体是在应用动画之前在物理上移动View,然后然后应用一个动画,使View开始之前的位置和结束于0,0