android rectF警告

Leo*_*Leo 3 android rect draw

我在画布上画了一个椭圆形:

RectF f = new RectF(-r, -r, r, r);
canvas.drawOval(f , mPaint);  
Run Code Online (Sandbox Code Playgroud)

为什么我在RectF上看到警告?

在绘制/布局操作期间避免对象分配(预分配和重用)

Ted*_*opp 14

它就是它所说的:每次绘制任何东西时,做一个new RectF内部onDraw会创建一个对象.这可能是很多对象.只需使用一个RectF:

RectF mRect = new RectF();

protected void onDraw(Canvas canvas) {
    mRect.set(-r, -r, r, r);
    canvas.drawOval(mRect, mPaint);
}
Run Code Online (Sandbox Code Playgroud)

需要明确的是:您的原始代码在逻辑上是正确的.这只是性能提升(尽管很重要).