View
-class を、私が呼ぶものに拡張していますMyView
。(基本的にオブジェクトに何が描かれているかを示し、これを処理するいくつかのプロパティを追加しました)
このクラスのオブジェクトを数ミリ秒ごとに移動していますが、これはうまく機能します。this.layout(left, top, right, bottom);
MyViewを移動するために使用しています。しかし、ビューが移動されるたびに再描画されるようです (onDraw が呼び出されます)。これは必要ですか?移動しても内容はMyView
変わりません。実際、コンテンツは決して変更されません。ある方法で作成され、移動し、後で破棄されます。
onDraw
作成するたびに、テキストや数字を描画したいので、使用しています。以前は拡張ImageView
して使用しsetImageResource
ていましたが、これにさまざまな画像以上のものが必要であることに気付き、このオブジェクトが持つことができるあらゆる種類のテキストと数値コンテンツの画像を作成するのは適切ではないと感じました.
また、オブジェクトが onTouch イベントを受信できることも重要です。これは現在正常に機能しています。
私のonDraw-methodには現時点で含まれています:(これは、常に再描画しないようにすると変更されます)
@Override
public void onDraw(Canvas canvas) {
Paint p = new Paint();
p.setARGB(255, 0, 255, 255);
canvas.drawRect(0, 0, 32, 32, p);
}
問題は、作成時に動的に描画されるオブジェクトを作成し、タッチ イベントを受け取る可能性があるか(これは別の方法で解決できるので、あまり重要ではありません)、再描画せずにオブジェクトを移動できますか (最も重要です) 。 ?
その理由は、このクラスのオブジェクトをいくつか (100 以上になる可能性があります) 持つつもりであり、常にオブジェクトを再描画することでアプリケーションの速度が低下すると考えているためです。
編集:ビューでは不可能な場合、使用できる代替手段はありますか?