2011-11-03 37 views
0

我正在使用畫布繪製不同的顏色。 我想設置應該顯示爲畫布背景的圖像。而當我繪製該圖像時,應該在圖像後面繪製圖像。 現在使用下面的代碼繪製圖像。如何設置圖像出現在當前畫布後面?

@Override 
    public void run() { 
     Canvas canvas = null; 
     while (_run){ 
      try{ 
       canvas = mSurfaceHolder.lockCanvas(null); 

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

       commandManager.executeAll(canvas); 
      } finally { 
       Bitmap kangoo = BitmapFactory.decodeResource(getResources(),R.drawable.icon); 
       canvas.drawBitmap(kangoo, 130, 100, null); 

       mSurfaceHolder.unlockCanvasAndPost(canvas); 
      } 
     } 

    } 

那麼,我該怎麼做才能使圖像繪製?

回答

0

沒有人給我答案。 但我得到了解決方案,我必須清除畫布後設置圖像。

代碼:

@Override 
    public void run() { 
     //Canvas canvas = null; 
     while (_run){ 


      try{ 
       canvas = mSurfaceHolder.lockCanvas(null); 

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

       Bitmap kangoo = BitmapFactory.decodeResource(getResources(),R.drawable.icon); 
       canvas.drawBitmap(kangoo, 130, 100, null); 
       commandManager.executeAll(canvas); 

      } finally { 

       mSurfaceHolder.unlockCanvasAndPost(canvas); 
      } 
     } 
1

如你重繪在一段時間(1)循環畫布,你可以在循環內的頂部放置語句canvas.drawBitmap(kangoo, 130, 100, null),使其再次吸入,再然後你畫過的頂部它。

如果你想給你做類似轉換畫布成位圖,保存拉伸件,如:

Bitmap bitmapToBeDrawnFromNextTime = Bitmap.createBitmap(canvas.getWidth(), canvas.getHeight(), Bitmap.Config.ARGB_8888); 
Canvas imageCanvas = new Canvas(bitmapToBeDrawnFromNextTime); 
imageCanvas.draw(canvas); 
相關問題