我正在尝试使用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
是我想用动画移动的视图,currentYPoint
是excuseContainer
的最后y点。
编辑: 我有任何翻译动画教程可用。我搜索了它,但我没有找到..
感谢您的支持。
答案 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);