2014-07-10 42 views
2

我想在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增量0%。它看起來像我需要在java代碼中定義動畫,而不是在xml文件中。所以問題是,我怎樣才能獲得當前的Y位置,並且當我在向下滑動動畫結束前按下滑塊時,它就會從剩下的位置開始向上滑動?

感謝

回答

0

最簡單的方法是讓你需要的是使用ValueAnimator動畫。在按鈕的onClick處理程序中,您可以在向下動畫上檢查isRunning()。如果正在運行,您只需在運行的動畫上調用reverse();這將立即工作。如果它沒有運行,則開始一個新的。

如果您需要定位比API 11舊的Android版本,則可以使用NineOldAndroids庫來獲得向後兼容性。