如何使用平移动画:Android

4

我正在尝试使用TranslateAnimation移动一个RelativeLayout。我编写的代码如下:

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点。
编辑: 是否有可用的翻译动画教程。我搜索了一下,但没有找到。
感谢您的支持。

“first y point” 是什么意思?你能在你的应用程序截图上画一些东西吗? - Tushar
我的意思是视图在加载应用程序时最初放置的位置。 - Sanjay Joshi
1个回答

10
TranslateAnimation的第三个参数是一个增量值,所以起始点的计算方式如下: currentYPos + startingDeltaY 由于你似乎正在传递一个与屏幕上某个位置相关的Y值,因此这个增量值不正确。
尝试使用以下构造函数:

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);

我们能否从特定点开始动画窗口并在屏幕上打开呢? 例如:一个窗口从按钮下方的点开始打开,并覆盖该按钮下方的窗口。 - Karan Khurana

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接