安卓:CreateBitmap上的onDraw [英] Android: CreateBitmap on onDraw
本文介绍了安卓:CreateBitmap上的onDraw的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
在自定义查看我打电话createBitmap中的onDraw方法。我怀疑,是不是正确的上的onDraw随时创建位图?
任何时候的onDraw调用的时候,创建新的位图,但会发生什么样的年龄较大的一个?
In my custom view I call createBitmap in onDraw method. I have doubts, is it correct to create bitmap on any time in onDraw? Any time when onDraw called, I create new bitmap, but what would happen to older one?
推荐答案
这是一段路要走:
private Bitmap mBitmap;
private Canvas mBitmapCanvas;
private Paint mDrawPaint = new Paint();
@Override
protected void onDraw(Canvas canvas) {
if (mBitmap == null) {
mBitmap = Bitmap.createBitmap(getWidth(), getHeight(), Bitmap.Config.RGB_565);
mBitmapCanvas = new Canvas(mBitmap);
}
mBitmapCanvas.drawColor(Color.WHITE); // clear previously drawn stuff
// draw stuff...
mBitmapCanvas.drawLine(....);
canvas.drawBitmap(mBitmap, 0, 0, mDrawPaint);
}
您应该避免,如果可能的话,分配内存(新运营商)的的onDraw(帆布C)内
方法。但是,您可以检查您的变量已经被创建和避免重新分配
You should avoid, if possible, to allocate memory (new-operator) inside the onDraw(Canvas c)
method. However, you can check if your variable has already been created and avoid re-allocation.
为了重置位图
,不要重新创建后,使用
mBitmapCanvas.drawColor(Color.WHITE);
代替。
这篇关于安卓:CreateBitmap上的onDraw的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文