キャンバスに楕円を描きます。
RectF f = new RectF(-r, -r, r, r);
canvas.drawOval(f , mPaint);
RectFに警告が表示されるのはなぜですか?
描画/レイアウト操作中のオブジェクトの割り当てを回避します(代わりに事前に割り当てて再利用します)
それはまさにそれが言っていることです:何かが描かれるたびにnew RectF
内部を行うことはオブジェクトを作成します。onDraw
これは多くのオブジェクトになる可能性があります。単一を使用するだけRectF
です:
RectF mRect = new RectF();
protected void onDraw(Canvas canvas) {
mRect.set(-r, -r, r, r);
canvas.drawOval(mRect, mPaint);
}
明確にするために、元のコードは論理的に正しいです。これは単なるパフォーマンスの向上です(重要なものですが)。
RectFオブジェクトを一度作成し、描画するたびに再利用するだけです。そうしないと、パフォーマンスに影響を与える可能性のあるRectFオブジェクトが多すぎます。