Android开发,对于animation怎么可以多个同时运行

Smilekcat 2014-09-01 02:32:39
比如一张图片,从一个点,平移动画translateanimation移到另一个点,但是在平移的过程中,同时实现旋转动画rotateanimation,可以同时实现么?我知道有动画集这个概念,但是也是无法同时多个动画执行
...全文
4326 12 打赏 收藏 转发到动态 举报
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
nicocarrey 2014-11-24
  • 打赏
  • 举报
回复
有个开源项目,叫NineOldAndroids,专门给3.0以下的版本做各种复杂的动画效果,LZ不妨去看下 人家的源码连接:https://github.com/JakeWharton/NineOldAndroids 同时动画,有个方法,AnimatorSet.playTogether()方法,可以同时执行多个控件的动画。 http://blog.csdn.net/singwhatiwanna/article/details/17639987 再附上一个简单教程
飞奔的豆沙包 2014-09-02
  • 打赏
  • 举报
回复
setStartOffset方法:设置启动时间 【功能说明】该方法用于设置一个动画执行的启动时间,单位为毫秒。系统默认当执行start方法后立刻执行动画,当使用该方法设置后,将延迟一定的时间再启动动画。 我上面的动画设置的是500毫秒,而第一个动画的duration是500毫秒,所以第二个动画会在第一个执行完成之后再执行,不设置setStartOffset的话就应该会同时执行了
飞奔的豆沙包 2014-09-02
  • 打赏
  • 举报
回复
之前我做界面切换动画的时候好像遇到过类似的问题,我当时的需求是界面退出的动画是界面先缩小一部分,然后平移出去,动画xml文件是这么写的: <?xml version="1.0" encoding="utf-8"?> <set xmlns:android="http://schemas.android.com/apk/res/android" > <scale android:duration="500" android:fromXScale="1.0" android:fromYScale="1.0" android:pivotX="50%p" android:pivotY="50%p" android:toXScale=".7" android:toYScale=".7" /> <translate android:startOffset="500" android:duration="500" android:fromXDelta="0" android:toXDelta="-100%p" /> </set> 这个会先执行上面的 缩放动画,执行完后再执行下面的平移动画,如果你想要同时执行的效果,应该把第二个动画的startOffset属性去掉就可以了,如果我没有记错的话,也就是改成这样: <?xml version="1.0" encoding="utf-8"?> <set xmlns:android="http://schemas.android.com/apk/res/android" > <scale android:duration="500" android:fromXScale="1.0" android:fromYScale="1.0" android:pivotX="50%p" android:pivotY="50%p" android:toXScale=".7" android:toYScale=".7" /> <translate android:duration="500" android:fromXDelta="0" android:toXDelta="-100%p" /> </set> 你试试看看哈,不一定行,但是应该是可以的
dali_yan 2014-09-01
  • 打赏
  • 举报
回复
用属性动画吧,你可以去看看
Kifile 2014-09-01
  • 打赏
  • 举报
回复
插值器是用来控制动画进度的东西,至于你说的情况,我没有遇到过这样的,可能是代码有点问题,你先看看呢
Smilekcat 2014-09-01
  • 打赏
  • 举报
回复
引用 6 楼 kifile 的回复:
自己重写一个插值器,插值器中的实现方法中根据当前角度判断值返回,然后set给你的角度动画,注意,只set给这一个就好了
先谢谢您,插值器是什么东东,我的角度动画是在我的传感器的角度改变监听方法里面,只要传感器角度改变就执行一个角度动画,然后,在主方法里面我需要根据情况来判断移动的距离,所以根据情况移动动画的同时加上指南针的效果,现在的情况是,角度动画正常,但是在主方法里面的移动动画却没有任何效果,可能是因为传感器的获取角度的频率非常快,所以可能来不及执行移动动画把?但是就是无法同时执行,我很纠结
Kifile 2014-09-01
  • 打赏
  • 举报
回复
自己重写一个插值器,插值器中的实现方法中根据当前角度判断值返回,然后set给你的角度动画,注意,只set给这一个就好了
Smilekcat 2014-09-01
  • 打赏
  • 举报
回复
希望有人能够给予帮助,谢谢
Smilekcat 2014-09-01
  • 打赏
  • 举报
回复
引用 3 楼 baseball11 的回复:
animationSet放入多个animation,最后通过view.startAnimation( animationSet)即可
谢谢您,我有个问题,因为我不是简单的一个方法中实现animationSet的,我是要实现一个直线的平移,但是平移中,图片的角度是我利用设备的传感器来判断角度,所以我很纠结怎么去一起实现,我仅仅用传感器的方法来实现指南针的方向,是正常的,,但是我用animationset就发现不正常
baseball11 2014-09-01
  • 打赏
  • 举报
回复
animationSet放入多个animation,最后通过view.startAnimation( animationSet)即可
Smilekcat 2014-09-01
  • 打赏
  • 举报
回复
引用 1 楼 hjywyj 的回复:
AnimationSet???
是的,animationset就是动画集,但是无法同时执行多个animation啊
  • 打赏
  • 举报
回复
AnimationSet???

80,337

社区成员

发帖
与我相关
我的任务
社区描述
移动平台 Android
androidandroid-studioandroidx 技术论坛(原bbs)
社区管理员
  • Android
  • yechaoa
  • 失落夏天
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧