私は最初からカスタムビューを作成しました。 View
を拡張し、onDraw()
を上書きします。 ビューがアニメーション化されると、私はオフセットを使ってカスタムアニメーションを生成します。例えば、 。どのようにしてAndroidでアニメーションビューを描画できますか?
while(!isOnTop){
mOffset++;
//draw the component a a it higher using the offset
if(position == 0)
isOnTop==true;
invalidate();
}
私のフレームは自分自身を無効にするからです。問題は、同じ画面でリストビューをスクロールするだけで、このビューの無効化が可能になることです。
この「共有無効化()」は、私のアニメーションの遅れを引き起こします。その遅れから脱出する方法はありますか?
共有環境でアニメーションを実行することについての他の提案はありますか? オフセットを計算する別々のスレッドを使ってアニメーションを作成するには、アニメーションを表示するために強制的なinvalidation()呼び出しが必要です(私が間違っている場合は修正してください)。
アニメーションを実行する唯一の方法は、例えば10段階の無効化要求で大きなステップを使用することですか?それは遅れを緩和しますが、私はそれについて別のアプローチを使うことができると思います。
申し訳ありませんが、これは*多くの場合、必要以上*より複雑な方法であり、SurfaceViewは、多くの場合、最適なソリューションを、それをない作る多くの妥協を持っています。 – hackbod
はい、それだけではありませんが、一緒に複数のアニメーションのビューを持っている最高のものです。質問は「ベスト」なのですが、答えは – weakwire
ありがとうございます。これは実際に私がj2meから慣れ親しんでいる方法です。計算が気に入らなければ、いつでもそれをスキップして一定時間眠ることができます。 –