AnimationDrawable 动画监听

本文介绍了一种使用Handler配合帧动画实现特定动画效果的方法。通过计算帧动画总时长,并在动画结束后执行图像缩放动画,实现了动画的无缝衔接。

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

方法:计算帧动画的时间,通过handler发送一个延迟消息,然后做逻辑处理。

             AnimationDrawable animationDrawable = (AnimationDrawable) iv_smaller.getDrawable();
             animationDrawable.setOneShot(true);
             animationDrawable.start();

                // 计算动画执行的时间
                int duration = 0;
                for(int i=0;i<animationDrawable.getNumberOfFrames();i++){
                    duration += animationDrawable.getDuration(i);
                }
                // 通过handler发送一个延迟消息
                Handler handler = new Handler();
                handler.postDelayed(new Runnable() {
                    public void run() {
                       //帧动画执行完,做逻辑处理  
                        iv_smaller.setImageDrawable(null);

                        // 相对于自己,从中心位置开始缩放
ScaleAnimation scan = new ScaleAnimation(1, 10, 1, 10,
Animation.RELATIVE_TO_SELF,1f 
,Animation.RELATIVE_TO_SELF,1f);
        scan.setDuration(800);
         iv_smaller.startAnimation(scan);
                    }
                }, duration); 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值