我正在尝试在Android中制作一个上下滑动画。这是一个屏幕截图和布局文件:底部的蓝色布局消失,并通过上下滑动显示
向上滑动xml文件:
<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android"
android:fillAfter="true" >
<translate
android:duration="500"
android:fromYDelta="100%"
android:toYDelta="0%" />
</set>
并向下滑动xml文件:
<set xmlns:android="http://schemas.android.com/apk/res/android"
android:fillAfter="true" >
<translate
android:duration="500"
android:fromYDelta="0%"
android:toYDelta="100%" />
</set>
以及我如何设置动画:
relativelayout_slideupdown_bottom.startAnimation(animation_slidedown);
问题是,如果我先按下滑动按钮,然后立即按下向上滑动按钮,从屏幕底部向上滑动,而不是从按下向上滑动时布局的位置,这很自然,因为我设置向上滑动从Y delta 100%到Y delta 0%的平移。看起来我需要在java代码中定义动画,而不是在xml文件中定义动画。所以问题是,我怎样才能获得当前的Y位置,当我在向下滑动动画结束之前向上滑动时,它会从它离开的位置开始向上滑动?
由于
答案 0 :(得分:0)
最简单的方法是获得所需内容,即使用ValueAnimator
动画。在按钮的onClick处理程序中,您只需在向下动画上检查isRunning()
即可。如果它正在运行,您只需在正在运行的动画上调用 reverse()
;这将立即工作。如果它没有运行,你就开始一个新的。
如果您需要定位早于API 11的Android版本,则可以使用NineOldAndroids库来实现向后兼容。