2017-03-11 11 views
0

アニメーションでカスタムビューを作成する必要があります。 Viewクラスを拡張し、onDrawをオーバーライドします。このカスタムビューには、アニメーションキャンバス(内側のonDraw)部分で再描画する必要のあるメソッドがあります。私はアニメーションオフセットを計算し、invalidate()を呼び出すonAnimationUpdate内のValueAnimatorを使ってアニメーションを作成します。それは正常に動作しますが、私は全体のビュー、アニメーション部分と残りの部分を再描画する必要があります。お試しくださいキャンバス部分を無効にする

invalidate (int l, int t, int r, int b) 

この場合、アニメーションは動作しません。 onDrawは2回しか呼び出されませんでした。

  1. キャンバス部分のみを再描画することはできますか、毎回すべてを再描画する必要がありますか?
  2. CanvasアニメーションにValueAnimatorを使用することをお勧めしますか?

答えて

1

基本的には、説明している方法でビューの一部を再描画することができます。ただし、ValueAnimatorを使用してアニメーションを作成する場合、ビュー全体を再描画するオーバーヘッドはごくわずかです。ビューの「汚れた」部分に関連するアニメーションの問題が再描画されないようにします。

引数なしで単にinvalidateを呼び出します。

P .:アニメーションが実行されるときに、プロファイリングツールを開いて見てください。通常の状況では、反応を見ることさえできません。

関連する問題