首页 > 学院 > 开发设计 > 正文

如何实现平移动画的暂停与播放?

2019-11-09 14:40:58
字体:
来源:转载
供稿:网友

前言

是的,关注博主的人都知道博主最近几年出货量是越来越少了,至于原因嘛,一是本人不太喜欢抄袭别人的文章,二是大部分问题大家在网上也都可以找到,所以也不太喜欢去写那些大家都能找到的东西,这篇文章呢,主要是实现一个比较有趣的功能,效果类似IOS新的回忆模块就类似这样的这篇博客可以帮你解决的主要问题就是如何暂停一个动画并且继续播放,想明白了实现起来比较简单但是网上却没找到一个让我满意的答案

正文

这里主要的问题就是那个播放的时间轴怎么处理,我用的是recycleView来加载时间轴,至于为什么不用ListView相信了解过的同学都知道,ListView是不会事先绘制出所有的item的,而我们需要的是一个很长的view能动态添加我们的图片数据并且让他从屏幕的一边滚动到另一边这里就是一个平移动画的问题,但是我们知道平移动画是没有暂停这一说的,所以为了保持时间轴与图片播放的同步,我们新建一个线程把相关问题放在handler里面解决,每3s调用一次handler并且判断是否暂停,如未暂停则继续播放,这里我们每切换一个图片就播放一帧的时间轴(向左滑动一个格),这样当我们按了暂停之后,暂停标识位置位,handler判断无效则不会播放下一帧的动画,问题就解决了(至于平移怎么做这些就不用说了吧)这里要详细解释一下TranslateAnimation方法
/** * Constructor to use when building a TranslateAnimation from code * * @param fromXDelta Change in X coordinate to apply at the start of the *        animation * @param toXDelta Change in X coordinate to apply at the end of the *        animation * @param fromYDelta Change in Y coordinate to apply at the start of the *        animation * @param toYDelta Change in Y coordinate to apply at the end of the *        animation */这是官方解释,也就是我们的动画的配置要动态改变,这将跟你的RecyclerView的index相关,第一个参数是你初始的位置,第二个是动画后的位置,index*ItemView的大小即可,代码不想贴出来了,一是因为你的需要和我的需要不一样,而是因为希望大家能从别人的博客学到知识作为己用,而不是一味的粘代码,有问题可以评论可以私聊
发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表