2012-07-02 6 views
9

私はこの奇妙な問題を抱えています。基本的に私は翻訳アニメーションでビューをアニメーション化しています。XMLで定義するとアニメーションが完全に動作し、コードで完全に1回のみ - Android

final Animation animtopOut = new TranslateAnimation(0, 0, 0, -mainHeaderlayout.getMeasuredHeight()); 
        animtopOut.setDuration(500); 
        animtopOut.setFillAfter(true); 
mainHeaderlayout.setAnimation(animtopOut); 

とXMLコードです:

コードを使用してそれを設定
<set xmlns:android="http://schemas.android.com/apk/res/android" 
    android:fillAfter="true" 
    android:interpolator="@android:anim/accelerate_interpolator" > 

<translate 
    android:fromYDelta="0%p" 
    android:toYDelta="-99%p" 
    android:duration="600" 
    android:fillAfter="true"> 

</translate> 
</set> 

final Animation animtopOut = AnimationUtils.loadAnimation(mContext, R.anim.header_animate_out); 
アニメーションを翻訳のための私のコードがある(2さまざまなイベントを経て、画面内外に翻訳)

アニメーションをトリガーすると、xmlアニメーションのプロパティを使用するとうまく動作します。 問題は、コードを使って問題を起こしたときです。それは私が望むものです。初めてアニメーションを翻訳するだけで動作します。 2回目にトリガされると、ビューはアニメーションなしで画面内に表示されます。何か不足している場合は、私に手伝ってください。ありがとう。


EDIT:(追加情報)

は、実際には2つの異なるイベントを経由して同じビューでトリガされている2つの異なるアニメーションがあります。私は実際に1つのアニメーションプロパティを投稿しました。もう一つはほぼ同じです。ちょうど値が異なっています。

答えて

3

は、あなたがこの

animtopOut.setRepeatCount(Animation.INFINITE); 

animtopOut.setRepeatMode(Animation.RESTART); 

animtopOut.setInterpolator(new LinearInterpolator()); 

のようなアニメーションの設定を試してみましたか?

+0

私の場合、この行は私の日でした:animtopOut.setInterpolator(new LinearInterpolator()); – Yazon2006

関連する問題