我正在使用AnimationSet在动态创建的视图上制作一系列动画。我使用startoffset来控制谁先开始。但是,动画的行为会有所不同,具体取决于我使用AnimationSet.AddAnimation与这些动画的顺序。不应该没关系,不应该仅仅提到startoffset吗?
我的意思是如果我有翻译动画tAnimation,缩放动画sAnimation,另一个翻译动画tAnimation2和旋转动画rAnimation。
我希望它们发生如下:
1- tAnimation 和 rAnimation 一起开始持续时间= 1000毫秒
sAnimation 和 tAnimation2 在前两个动画后一起发生, 500毫秒
事情会像
AnimationSet s = new AnimationSet(false);
//.... Animations definition
//..
//....
//...
tAnimation.setDuration(1000);
rAnimation.setDuration(1000);
sAnimation.setDuration(500);
sAnimation.setStartOffset(1000); //offsets at the duration of the first set
tAnimation2.setDuration(500);
tAnimation2.setStartOffset(1000); //offsets at the duration of the first set
//does it matter here who I add first to the animation set?
//because if I change the order in which i add the animations to the animation set, I get different results
s.addAnimation(rAnimation);
s.addAnimation(tAnimation);
s.addAnimation(tAnimation2);
s.addAnimation(sAnimation);
注意到我在 AnimationSet 上使用了自定义的AnimationListener,并且只实现了它的“AnimationEnd”处理程序来设置我在所有动画完成后动画的imageview的最终位置。
并在这里添加更多信息,这是我想在图片中做的事情。
我将图像视图分散在屏幕上随机位置和随机旋转(我存储了这些位置) - 场景如下:
1-当用户点击屏幕上的任何Imageview时 2-点击的图像视图(对象)移动到屏幕的中心(对象的中心位于屏幕的中心)并旋转到角度0 3-然后点击的图像视图扩展到指定的比例,并向上移动到正好在屏幕中心之上..
草拟我在这里要做的事情(我无法发布图片,因为我缺少声望点):https://dl.dropboxusercontent.com/u/10306740/app.jpg