2012-08-13 49 views
0

圖片在這個場景中,我有一個位圖在屏幕上由左到右行駛,並且當按下一個按鈕將調用clearAnimation()clearAnimation() - 如何讓動畫保持最終位置?

當按下這個按鈕,它調用將行進位clearAnimation()但位停留在位置(左右之間的某個位置)。

我其實想發生是按下按鈕時,該位圖在動畫點(屏幕右側)

任何想法月底結束瞭如何實現這一目標嗎?下面是我的動畫代碼

questionAnimation = AnimationUtils.loadAnimation(QuestionActivity.this, R.anim.left_to_right); 
questionWrapper.setBackgroundDrawable(getResources().getDrawable(R.drawable.imageview_rounded)); 
questionWrapper.startAnimation(questionAnimation); 

回答

1

我認爲正在發生的事情,以你的動畫是其setFillAfter()是默認設置好的真或要麼你已經應用動畫之前設置好的爲true,通過Java或XML等等首先你應該設置setFillAfter爲false或者你可以直接改變setFillEnabled假像這裏的XML應用設置

<set xmlns:android="http://schemas.android.com/apk/res/android" 
android:fillAfter="false" > 

<translate 
    android:duration="300" 
    android:fromYDelta="100%p" 
    android:toYDelta="0" /> 

<alpha 
    android:duration="300" 
    android:fromAlpha="0.0" 
    android:toAlpha="1.0" /> 

</set> 

或者

<set xmlns:android="http://schemas.android.com/apk/res/android" 
android:fillEnabled="false" > 

<translate 
    android:duration="300" 
    android:fromYDelta="100%p" 
    android:toYDelta="0" /> 

<alpha 
    android:duration="300" 
    android:fromAlpha="0.0" 
    android:toAlpha="1.0" /> 

</set> 

因此,在這種情況下,w ^母雞動畫結束或清除它不會保留意見圖像(暫停您的圖像在中間),所以其次你必須設置圖像的新位置,即通過代碼在屏幕的右側,當你清除動畫或動畫自然結束時,爲您必須將實際視圖(ImageView)放置到新位置(由於此前由FillAfter處理,但由於在按動清晰動畫時暫停視圖出現故障,您需要將其刪除,所以現在必須由自己覆蓋其功能)通過設置ImageView的屬性,就好像它在RelativeLayout中一樣,然後通過將AlignParentRight的屬性設置爲true。

+0

這是我應該做的事情的標準方式,還是這裏有錯誤的clearanimation /填充方法? – totalitarian 2012-08-13 16:17:24

+0

如果你想動畫在任何時候立即結束(即使用clearAnimation,我認爲這個場景很安靜),那麼這是正確的方法來做到這一點,據我所知。它被大多數人接受,因爲我也在情況下,我必須使用fillEnable false然後我遵循以下問題中討論的相同的過程http://stackoverflow.com/questions/7824079/edittext-stucks-after-animation-and-活着回滾滾動http://stackoverflow.com/questions/8411903/android-translateanimation-on-button-flickers/8411992#8411992 – 2012-08-13 17:30:35

+0

謝謝。在clearAnimation之後調用invalidate()在我的情況下似乎有效。 – totalitarian 2012-08-13 18:40:31

相關問題