现在在做一个音乐播放器,播放界面需要用到旋转的动画,像网易音乐一样,就用到了ObjectAnimator,再次遇到一个问题,就是播放音乐的时候点击暂停在点击播放这个过程中,旋转的动画不要从头开始转,而是从暂停的位置继续旋转。
1.首先看一下旋转的代码
/**
* 增加旋转动画
*/
ObjectAnimator animtorAlpha;
public void startRotation() {
//设置旋转的样式
animtorAlpha = ObjectAnimator.ofFloat(this, "rotation", 0f, 720f);
//旋转不停顿
animtorAlpha.setInterpolator(new LinearInterpolator());
//设置动画重复次数
animtorAlpha.setRepeatCount(100);
//旋转时长
animtorAlpha.setDuration(36000);
//开始旋转
animtorAlpha.start();
2.暂停旋转
/**
* 暂停旋转
*/
public void pauseRotation() {
animtorAlpha.pause();
}
3.停止旋转
/**
* 停止旋转
*/
public void stopRotation() {
animtorAlpha.end();
}
4.恢复
/**
* 恢复动画
*/
public void resumeRotation() {
animtorAlpha.resume();
}
5.我遇到的问题
我遇到的问题就是暂停之后在点击播放,旋转动画从头开始转,这样总感觉感觉不舒服,原来我是在暂停之后在点击播放的时候调用
animtorAlpha.start();
然后在网上找,有一个 animtorAlpha.resume();方法可以从暂停的位置继续旋转而不是从头开始转。怎么感觉跟activity的生命周期一样。
6.旋转样式参数
animtorAlpha = ObjectAnimator.ofFloat(this, “rotation”, 0f, 720f);
对这段代码不清楚的可以看看这篇文章
这里面讲的挺详细的,我只是把我的问题记录一下,以后说不定能用到。
项目地址