2012-08-14 16 views
8

私はshowPreviousが呼び出されたときにビューアニメーションを実行するViewFlipperを持っています。アニメーションは正常に動作します。しかし問題は、1秒以上の遅延で始まることです。これはあまり好きではないようですが、アプリの使用が真剣に遅れています。'巨大な'遅延を持つViewFlipper

私のアニメーションはこのように見えます。

Animation inFromLeft = new TranslateAnimation(
    Animation.RELATIVE_TO_PARENT, -1.0f, 
    Animation.RELATIVE_TO_PARENT, 0.0f, 
    Animation.RELATIVE_TO_PARENT, 0.0f, 
    Animation.RELATIVE_TO_PARENT, 0.0f); 
inFromLeft.setDuration(350); 
inFromLeft.setInterpolator(new LinearInterpolator()); 

Animation outtoRight = new TranslateAnimation(
    Animation.RELATIVE_TO_PARENT, 0.0f, 
    Animation.RELATIVE_TO_PARENT, +1.0f, 
    Animation.RELATIVE_TO_PARENT, 0.0f, 
    Animation.RELATIVE_TO_PARENT, 0.0f); 
outtoRight.setDuration(350); 
outtoRight.setInterpolator(new LinearInterpolator()); 

私はsetInAnimationsetOutAnimationを使用してアニメーションを設定します。

setInAnimation(inFromLeft); 
setOutAnimation(outtoRight); 

そして私はちょうどshowPrevious

を使用してアニメーションを起動アニメーションが1秒以上の遅れで開始し、アニメーションのためのstartTimeは-1とstartOffsetが0でない理由はあります。

答えて

2

2つの提案。まず、可能であればViewPagerを使用するように切り替えます。第2に、最初のものが不可能な場合は、XMLベースのアニメーションを使用します。コードからリソースにプッシュすることは、通常は勝利です。

+0

解決策はViewPagerに切り替えていましたが、アニメーションは私が望んでいたアニメーションではありませんが、遅延はなくなりました。アニメーションをXMLに変更しても何も変わりません。 – Thys

1

アニメーションで遅延が発生していますか? AnimationListenerのstartAnimationメソッドを含むいくつかのログを追加しようとしましたか?

アニメーションの開始後に遅延が発生していることが確かな場合は、アニメーションを開始する前と終了後(アニメーションリスナーを再度使用)の間でtraceviewを試してみてください。その間にAndroidが何をしているのかがわかります。

0

@MrThysと同じ問題に直面していますが、これはGingerbreadデバイスでのみ見られます。 JellyBeanデバイスにこのような問題はありません。

+0

これはコメントであり、回答ではありません。 – Joel

+0

あなたは正しいです。しかし、私は実際の投稿をアップ/コメント/コメントすることはできず、同じ問題に直面しています。 XMLベースのアニメーションを試したことがありませんでした。 – user1102412

+0

それは答えとして投稿することを正当化しません。十分な評判があるか、別の質問をするまで待ってください。 – Joel

関連する問題