2011-09-16 45 views
0

我有下面的代码保存用户的绘图。这是我的绘画应用程序的一部分。现在,画布的背景颜色是白色的,我希望它是一个图像。如何将画布背景更改为Android中的图像?

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

@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); 
      } 


     } 

    } 

} 

非常感谢您的帮助! :)

+0

我不是真的得到你的问题,你想在画布上画一个图像?您似乎已经在画布上绘制图像了。在行'canvas.drawBitmap(mbBitmap,0,0,null);'你已经在绘制它。如果你想让图像成为背景,只要确保它是第一个被绘制的东西,其他所有东西都被绘制在它上面。 – Brian

+0

感谢您的回复@AeroDroid。 “如果你想让图像成为背景,只要确保它是第一个被绘制的东西,其他东西都会被绘制在上面。” - 你说得对,这就是我想要的。任何想法如何做到这一点?我可以在画布上绘制,但无法将图像作为其背景...... – Mico

+0

哦,我的意思是在'if'语句之后放置'canvas.drawBitmap(mBitmap,0,0,null)'。我不确定这是否正是你想要达到的目标,但值得一试。 – Brian

回答

0

要改变画布的背景下,在你mainActivity.java

if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.JELLY_BEAN) { 
    drawView.setBackground(getResources().getDrawable(R.drawable.background)); 
} 

onCreate()还要键入这一行,你可以尝试在onDraw()中执行此操作,但性能将大大降低

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