android Animation动画平移之后不响应点击事件

本文介绍了一种解决ImageView在播放动画后点击事件失效的方法。通过在动画结束时清除动画并手动更新ImageView的位置,可以确保其点击事件正常工作。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >




问题:为imageview添加了动画,动画播放完之后imageview的点击事件(点击、长按)消失了。

一.概述

          当我们给view做动画的时候,平移到某一个位置,却发现响应不了点击事件,因为view的真实位置还在原来的地方,具体解决办法如下.

二.实例

   思路:当我们完成动画之后,手动设置view的位置,这样就能响应view的点击事件了,具体如下

private void startAnim() {  
        TranslateAnimation translateAnimation = new TranslateAnimation(0, 100, 0, 100);  
        translateAnimation.setDuration(1000);  
        translateAnimation.setFillAfter(true);  
        iv_laucher.startAnimation(translateAnimation);  
        translateAnimation.setAnimationListener(new Animation.AnimationListener() {  
            @Override  
            public void onAnimationStart(Animation animation) {  
           }  
  
            @Override  
            public void onAnimationEnd(Animation animation) {  
               //清除动画  
                iv_laucher.clearAnimation();  
                LinearLayout.LayoutParams params = (LinearLayout.LayoutParams) iv_laucher.getLayoutParams();  
                params.leftMargin = params.leftMargin + 100;  
                params.topMargin = params.topMargin + 100;  
               iv_laucher.setLayoutParams(params);  
            }  
  
           @Override  
            public void onAnimationRepeat(Animation animation) {  
           }  
       });  
    }  


也就是


animation.setAnimationListener(new Animation.AnimationListener() {
     @Override
     public void onAnimationStart(Animation animation) {
     }
     
     @Override
     public void onAnimationRepeat(Animation animation) {
     }
     
     @Override
     public void onAnimationEnd(Animation animation) {
         view.clearAnimation();
         view.layout(left, top, left+width, top+height);
     }
 });

在动画播放完成时候清除View的动画,然后再设置View的位置;

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值