Android动画点击不运行

不知道大家遇到过这种问题没有,明明通过setAnimation方法设置好了动画,也运行了start方法,但动画就是迟迟动不起来。

比如在点击事件中

@Override
    public void onClick(View v) {
        switch (v.getId()){
            case R.id.bt_translate:

                TranslateAnimation translateAnimation = new TranslateAnimation(
                        Animation.RELATIVE_TO_PARENT, 0,
                        Animation.RELATIVE_TO_PARENT, 1.0f,
                        Animation.RELATIVE_TO_PARENT, 0,
                        Animation.RELATIVE_TO_PARENT, 1.0f);
                translateAnimation.setDuration(2000);
                translateAnimation.setRepeatCount(3);//循环4次
                translateAnimation.setFillAfter(true);//停留在最后一帧
                translateAnimation.setRepeatMode(Animation.REVERSE);
                image.setAnimation(translateAnimation);
                translateAnimation.start();
                break;
            case R.id.btAlpha:
                AlphaAnimation alphaAnimation = new AlphaAnimation(0,1.0f);
                alphaAnimation.setDuration(3000);
                image.setAnimation(alphaAnimation);
                alphaAnimation.start();
                break;
        }
    }

明明该写的都写了,但是就是不能运行。

其实我们只需要将

image.setAnimation(translateAnimation);
translateAnimation.start();

改为

image.startAnimation(translateAnimation);

就ok了

感谢这位作者的帮助android动画的setAnimation与startAnimation的区别

setAnimation是告诉该控件我待会要执行什么动画,而要执行的的动画,是需要手动添加的。并且需要父view在动画快要开启的时候,调用invalidate。

而startAnimation告诉该控件,我要立马执行该动画,该动画就是已经设置好的动画。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值