私はかなりの時間検索しましたが、私の質問に対する簡潔で明確な回答を見つけることができませんでした. 画面にスポーツ フィールド (すべてのピッチ ラインを含む) を描画する必要があるアプリケーションがあります。これまでのところ、SurfaceView を拡張し、残りの LunarLander デモもほとんどコピーしました。ピッチを正しい寸法に描画するためにアプリケーションが必要とするすべてのデータは、正常に機能するソケットから受信されます。ただし、onDraw() 関数の分で、各フレームにすべての線を描画しているため、エミュレータのフレームレートがかなり遅くなります (例: ~10fps)。ここに私の onDraw() 関数があります:
@Override
public void onDraw(Canvas canvas) {
canvas.drawARGB(255,0,144,0);
canvas.drawLine(canvas, getFirstLine(), mPaint);
canvas.drawRect(canvas, getFirstRect(), mPaint);
canvas.drawRect(canvas, getSecondRect(), mPaint);
...
canvas.drawRect(canvas, getSecondRect(), mPaint);
drawAnimatedObjects();
}
次に、この背景の上に円とさまざまな位置を描きます。私の質問は、これをより効率的にするにはどうすればよいですか? アプリケーションの初期化時に線を描画し、フレームごとに線を再描画する必要がない方法はありますか?
助けてくれてありがとう。