安卓:CreateBitmap上的onDraw [英] Android: CreateBitmap on onDraw

查看:339
本文介绍了安卓: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屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆