android动画实现一张图自动旋转、可随时暂停、停止和重置,类似秒表指针旋转动画

项目需求:点击开始按钮,图片开始旋转,点击暂停,旋转暂停,位置不变,点击继续,图片从暂停的位置继续旋转,点击停止,图片位置重置;类似于秒表指针的旋转动画;

前言:一开始走了很多弯路,做出来的效果很差,后来查找资料找到了这样一个简单有效的方法,在此分享一下!

此方法的局限性:

1.对API有要求,必须要 API >=  19,如遇到红色波浪线报 API 的错误,可在方法前加上这句话: @TargetApi(Build.VERSION_CODES.KITKAT)

2.本例中设置的60秒转360度应该是很准确才对,但是不知道为啥,转一整圈只需要59秒,有时候不到59秒,很奇怪,可能是对动画属性值的设置哈没完全弄懂,如果有懂的朋友可以留言告诉我,不胜感激!


准备好图片资源,写好布局和点击事件之后,接下来就是实现动画:

1.定义成员变量,本例使用的是 ObjectAnimator;


private ObjectAnimator mCircleAnimator;

private ImageView mDynamicCircle;

2.初始化,对于旋转的角度、旋转周期、旋转动画的插值器等属性大家可以自己 DIY,在此就不赘述了;


mDynamicCircle = (ImageView) findViewById(R.id.record_wav_main_dynamic_circle);
mCircleAnimator = ObjectAnimator.ofFloat(mDynamicCircle, "rotation", 0.0f, 360.0f);
mCircleAnimator.setDuration(60000);
mCircleAnimator.setInterpolator(new LinearInterpolator());
mCircleAnimator.setRepeatCount(-1);
mCircleAnimator.setRepeatMode(ObjectAnimator.RESTART);

3.开始旋转:


mCircleAnimator.start();

4.暂停旋转:


mCircleAnimator.pause();

5.继续旋转:


mCircleAnimator.resume();

6.停止旋转并重置:


mCircleAnimator.end();

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

却染人间愁

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值