Android AnimationSet序列的行为因我首先添加的用户而异

Android AnimationSet序列的行为因我首先添加的用户而异,android,animation,android-animation,Android,Animation,Android Animation,我正在使用AnimationSet在动态创建的视图上制作一系列动画。我用startoffset来控制谁先开始。但是,动画的行为会有所不同,具体取决于我对这些动画使用AnimationSet.AddAnimation的顺序。这不重要吗?它不应该只是指startoffset吗 我的意思是,如果我有一个平移动画tAnimation,一个缩放动画sAnimation,另一个平移动画tAnimation2和一个旋转动画rAnimation 我希望它们按如下方式发生: 1-开始时同时进行模拟和模拟,持续时间

我正在使用AnimationSet在动态创建的视图上制作一系列动画。我用startoffset来控制谁先开始。但是,动画的行为会有所不同,具体取决于我对这些动画使用AnimationSet.AddAnimation的顺序。这不重要吗?它不应该只是指startoffset吗

我的意思是,如果我有一个平移动画tAnimation,一个缩放动画sAnimation,另一个平移动画tAnimation2和一个旋转动画rAnimation

我希望它们按如下方式发生:

1-开始时同时进行模拟和模拟,持续时间=1000 ms 2-sAnimation和TANIMATION 2在前两个动画之后同时发生,持续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-单击的imageview对象移动到屏幕中心该对象的中心位于屏幕中心并旋转到角度0 3-然后单击的imageview扩展到指定的比例,并向上移动到屏幕中心正上方


我无法发布图片,因为我缺少信誉点:

请不要在此处使用同一类型的多个动画翻译动画,因为要获得所需的动画有点棘手result@pskink感谢您的回复,但是我如何才能实现相同类型的多个动画呢使用单独的动画集?使用自定义插值或再次感谢您的回答,但如果我理解正确,我认为自定义插值器在我的情况下不会有帮助,这两个转换不相关-即动画1转到点x,y-和动画2转到点a,b。插值器不是关于它在起点和终点之间的速度,而不是它在哪里的行为吗?正如你所知道的,速度与距离和时间有关:v=s/t,所以是的,自定义插值器可以精确地执行你使用复杂的多重动画尝试执行的操作,顺便问一下,你想实现什么转换?