如何解释Android动画上的坐标系?
我们知道,android坐标系是从android屏幕的左上角开始的。x轴是向下生长的,y轴是向右生长的。但是我发现它不适合动画 例如,我使用构造的函数初始化了TranslateAnimation:如何解释Android动画上的坐标系?,android,animation,coordinate-systems,Android,Animation,Coordinate Systems,我们知道,android坐标系是从android屏幕的左上角开始的。x轴是向下生长的,y轴是向右生长的。但是我发现它不适合动画 例如,我使用构造的函数初始化了TranslateAnimation: TranslateAnimation ta = new TranslateAnimation(0.0f, 200, 0.0f, 200); 坐标系改变了吗?我发现它不是从左上角开始的 然后,我初始化了另一个translateAnimation以向上和向右移动: TranslateAnimatio
TranslateAnimation ta = new TranslateAnimation(0.0f, 200, 0.0f, 200);
坐标系改变了吗?我发现它不是从左上角开始的
然后,我初始化了另一个translateAnimation以向上和向右移动:
TranslateAnimation ta = new TranslateAnimation(0.0f, 200, 0.0f, -200);
ta.setReaptMode(Animation.REVERSE);
同样的行为也会被发现。
我对此感到困惑。我认为TranslateImation的构造函数使用delta。看见或者查看构造函数的标志:<代码>(从xDelta开始浮动,从xDelta开始浮动,从ydelta开始浮动,从ydelta开始浮动)。所以如果你想要你的动画。若要首先跳转,可以使用负的第三个参数 更准确地说: 直到布局完成后,动画才能开始。除此之外,人们通常不必担心算法的工作原理,因为算法基本上是非常好的,您可以通过设置来控制其策略。简言之,当动画开始时,我们知道您希望视图在屏幕上的位置,因为您设置了布局参数 “平移”动画然后从该位置获取增量。因此,当前动画不应该从左上角开始,而应该从onMeasure评估这些布局参数的位置开始 有人会说——真烦人。即使你只想做一些简单的上下式动画,它也会变得复杂。。。嗯,这是一个明智的发展战略;它将使安卓动画开发成为一种娱乐。在每个动画上设置一个。在onAnimationEnd中,可能以参数化的方式,将动画视图上的布局参数重置为您期望的位置。这样,当您再次应用动画时,不会出现令人惊讶的“跳跃”。在某些情况下,您可能需要
使
无效,或者clearAnimation
。这样做的原因是测量过程将再次出现,并且您的TranslateAnimation
将有一个新的偏移量。最后,您可能希望使用侦听器中的post(Runnable-Runnable)
执行所有这些重置发布到视图的消息队列中,这样您就可以结束动画绘制的最后一个过程
我也发现android动画有时会让你感到惊讶,并导致神经质的行为。但是,如果您这样做,那么使用delta参数的构造函数就不会再让人困惑了