2011-09-16 52 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)