2011-08-24 69 views
1

我的應用程序是一個基本的繪圖應用程序。用戶可以在畫布上繪圖並將圖像保存爲PNG。他可以加載早先繪製的圖像並編輯它們。如何將SD卡上的PNG圖像加載到Canvas以在Android中繪製?

我能夠做第一部分。也就是說,用戶可以在SD卡上繪製和保存圖像。我無法將保存的PNG文件加載到畫布上並對其進行繪製。

這裏是我的SurfaceView類中的運行方法。

public void run() { 
      Canvas canvas = null; 
      while (running) { 
       try { 
        canvas = holder.lockCanvas(null); 
        synchronized (holder) { 
         if(mBitmap == null){ 
          mBitmap = Bitmap.createBitmap (1, 1, Bitmap.Config.ARGB_8888);; 
         } 
         final Canvas c = new Canvas (mBitmap); 
         c.drawColor(Color.WHITE); 

         //pad.onDraw(canvas); 

         Paint p = new Paint(); 
         p.setColor(Color.GRAY); 

         for(double x = 0.5;x < c.getWidth();x += 30) { 
          c.drawLine((float)x, 0, (float)x, c.getHeight(), p); 
         } 

         for(double y= 0.5;y < c.getHeight();y += 30) { 
          c.drawLine(0, (float)y, c.getWidth(), (float)y, p); 
         } 

         pad.onDraw(c); 

         canvas.drawBitmap (mBitmap, 0, 0, null); 
        } 
       } finally { 
        if (canvas != null) { 
         holder.unlockCanvasAndPost(canvas); 
        } 
       } 
      } 
     } 

我嘗試將png加載到'mBitmap',但它沒有奏效。 任何幫助表示讚賞。

謝謝!

回答

4

在你的代碼中你根本沒有從sd卡加載圖片,這是故意的嗎?這是你如何打開SD卡的圖像格式:

mBitmap = BitmapFactory.decodeFile("/sdcard/test.png"); 
相關問題