3
我在畫布上繪製一個橢圓:安卓rectF警告
RectF f = new RectF(-r, -r, r, r);
canvas.drawOval(f , mPaint);
爲什麼我看到RectF警告?
在抽吸/佈局操作(預分配 和重用代替)避免對象分配
我在畫布上繪製一個橢圓:安卓rectF警告
RectF f = new RectF(-r, -r, r, r);
canvas.drawOval(f , mPaint);
爲什麼我看到RectF警告?
在抽吸/佈局操作(預分配 和重用代替)避免對象分配
它正是這樣說的:在onDraw
裏面做new RectF
會在每次繪製任何東西時創建一個對象。這可能是很多對象。只需使用單一RectF
:
RectF mRect = new RectF();
protected void onDraw(Canvas canvas) {
mRect.set(-r, -r, r, r);
canvas.drawOval(mRect, mPaint);
}
只是要清楚:你原來的代碼是邏輯正確。這只是一個性能改進(儘管很重要)。
剛剛創建RectF對象一次,每次你,否則你畫會造成太多的RectF反對,也時刻重用影響表演。