Android幻灯片动画从当前位置

时间:2014-07-10 18:38:04

标签: android

我正在尝试在Android中制作一个上下滑动画。这是一个屏幕截图和布局文件:底部的蓝色布局消失,并通过上下滑动显示

enter image description here

向上滑动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位置,当我在向下滑动动画结束之前向上滑动时,它会从它离开的位置开始向上滑动?

由于

1 个答案:

答案 0 :(得分:0)

最简单的方法是获得所需内容,即使用ValueAnimator动画。在按钮的onClick处理程序中,您只需在向下动画上检查isRunning()即可。如果它正在运行,您只需在正在运行的动画上调用 reverse() ;这将立即工作。如果它没有运行,你就开始一个新的。

如果您需要定位早于API 11的Android版本,则可以使用NineOldAndroids库来实现向后兼容。