翻译动画的工作原理:Android

时间:2013-05-24 04:26:13

标签: android android-animation translate-animation

我正在尝试使用RelativeLayout移动TranslateAnimation。我为执行相同操作编写的代码是:

translateAnimation = new TranslateAnimation(0, 0, heightOfRootView-excuseContainer.getHeight(), currentYPoint);
translateAnimation.setRepeatMode(0);
translateAnimation.setDuration(500);
translateAnimation.setFillAfter(true);
excuseContainer.startAnimation(translateAnimation);

我正试图从特定视图的当前y位置开始动画 (我不需要改变视图的x位置) 但动画每次都从第一个y点开始凝视。如何从当前的y视图位置到所需的视图位置执行此操作。

此处heightOfRootView代表全屏高度,excuseContainer是我想用动画移动的视图,currentYPointexcuseContainer的最后y点。

编辑: 我有任何翻译动画教程可用。我搜索了它,但我没有找到..

感谢您的支持。

1 个答案:

答案 0 :(得分:10)

您使用的TranslateAnimation构造函数的第3个参数是delta值,因此起点计算如下:

currentYPos + startingDeltaY

由于您似乎传递的Y值指的是屏幕上某些内容的位置,因此此delta值将不正确。

尝试使用此构造函数:

  

public TranslateAnimation(int fromXType,float fromXValue,int toXType,float toXValue,int fromYType,float fromYValue,int toYType,float toYValue)

像这样:

new TranslateAnimation(Animation.RELATIVE_TO_SELF, 0, Animation.RELATIVE_TO_SELF, 0, Animation.ABSOLUTE, heightOfRootView-excuseContainer.getHeight(), Animation.ABSOLUTE, currentYPoint);