2011-08-24 68 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"); 
相关问题