個人的には、最初のアプローチの修正バージョンを使用します。犬の散歩アニメーションのすべてのフレームを含むイメージ ファイルを作成します。次のように Rects を使用してキャンバスに犬を描きます。
canvas.drawBitmap(dogBitmap, sourceRect, destinRect, null);
ここdogBitmap
で、 は犬のアニメーションのビットマップ、sourceRect
は現在のアニメーション フレームのピクセル座標を含む Rect オブジェクトdestingRect
、犬を描画する画面座標を含み、最後の null は次の場合にのみ必要なペイント用です。画像をフィルタリングしたい。次に、フレームごとに sourceRect を移動します。ただし、多くの (大きな) 画像ファイルを Android アプリケーションにロードすると、Android はロードされたビットマップを非圧縮で保存するため、ヒープ制限を超える可能性があることに注意してください。
アニメーション プログラムで使用される別の方法 (「プログラムでピクセルを移動する」の方向に少し進む) は、骨格アニメーションを使用することです。スケルトン アニメーションを使用すると、標準的なポーズの犬のモデルのみが必要になり、アニメーション ボーンを使用してすべてのフレームで他のポーズをモデルに適用できるという利点があります。残念ながら、この手法の実装を提供する Android ライブラリは知りません。また、おそらく自分でアニメーションをモデリングする必要があります。