2013-04-04 27 views
0

我的代碼在這裏收到bmpXbmpY的值,並使用它們在屏幕上的該位置繪製位圖。這完全按照我想要的方式工作,但我寧願使用canvas.translate()函數來處理圖像的移動,而不僅僅是canvas.drawBitmap(),因爲我將在畫布上應用其他繪圖元素,並且我希望它們都移動相同數量和方向。使用canvas.drawBitmap()與canvas.translate()

我的問題是:在哪裏可以將canvas.drawBitmap()移動到代碼中,以便在開始時將它畫到畫布上,但是在使用canvas.translate()之後,它隨時會被移動?無論我在哪裏放置代碼,都會凍結圖像,直到我繪製該圖像爲止,無論我改變canvas.translate()的位置。我正在想象它可能將圖像「粘」到畫布上,可以這麼說,然後移動畫布,畫布也隨之移動。

public void run() { 
     // TODO Auto-generated method stub 
     while(isRunning) { 
      if(!surfaceHolder.getSurface().isValid()) { 
       continue; 
      } 

      canvas = surfaceHolder.lockCanvas(); 
      canvas.drawRGB(255, 255, 255); 
      canvas.drawBitmap(bmp, bmpX-(bmp.getWidth()/2), 
            bmpY-(bmp.getHeight()/2), null); 

      //canvas.translate(bmpX, bmpY); 

      surfaceHolder.unlockCanvasAndPost(canvas); 

     } 
} 

我希望我能夠清楚地解釋我的問題。謝謝!

回答

0

回答我自己的問題在這裏清晰,afetr信息我離線。 UI不能在這樣的線程上完成,我需要使用Android UI線程。 runOnUIUpdatethread和異步任務

相關問題