如何在Android中将画布背景更改为图像?

时间:2011-09-16 17:47:48

标签: android image paint

我有以下代码来保存用户的绘图。这是我的绘画应用程序的一部分。现在,画布的背景颜色是白色的,我希望它是一个图像。

例如,我有一个房子的图像,我想在它上面绘制一些东西。

@Override
public void run() {
    Canvas canvas = null;
    while (_run){
        if(isDrawing == true){
            try{
                canvas = mSurfaceHolder.lockCanvas(null);
                if(mBitmap == null){
                    mBitmap =  Bitmap.createBitmap (1, 1, Bitmap.Config.ARGB_8888);
                }
                final Canvas c = new Canvas (mBitmap);

                c.drawColor(0, PorterDuff.Mode.CLEAR);
                canvas.drawColor(0, PorterDuff.Mode.CLEAR);
                canvas.drawColor(0xffffffff);

                commandManager.executeAll(c,previewDoneHandler);
                previewPath.draw(c);

                canvas.drawBitmap (mBitmap, 0,  0,null);
            } finally {
                mSurfaceHolder.unlockCanvasAndPost(canvas);
            }


        }

    }

}

非常感谢您的帮助! :)

2 个答案:

答案 0 :(得分:1)

我认为你在寻找这个:

Drawable image on a canvas

答案 1 :(得分:0)

要更改画布的背景,请在onCreate()

mainActivity.java中输入以下一行
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.JELLY_BEAN) {
    drawView.setBackground(getResources().getDrawable(R.drawable.background));
}

另外,您可以尝试在onDraw()中执行此操作,但性能会大大降低

canvas.drawBitmap(BitmapFactory.decodeResource(getResources(),R.drawable.bg1),0,0,null)