2011-08-24 3 views
1

내 응용 프로그램은 기본 그리기 응용 프로그램입니다. 사용자는 캔버스에 그림을 그릴 수 있고 이미지를 PNG로 저장할 수 있습니다. 그는 이전에 그린 이미지를로드하고 편집 할 수 있습니다.안드로이드에서 그릴 수있는 sdcard에 PNG 이미지를 캔버스로로드하는 방법은 무엇입니까?

나는 첫 번째 부분을 할 수있었습니다. 즉, 사용자는 이미지를 그려서 sdcard에 저장할 수 있습니다. 저장된 PNG 파일을 Canvas에로드하고 그 위에 드로잉하는 데 문제가 있습니다.

여기 내 SurfaceView 클래스의 run 메소드입니다.

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); 
        } 
       } 
      } 
     } 

'mBitmap'에 png를로드하려고했지만 작동하지 않았습니다. 도움을 주시면 감사하겠습니다.

감사합니다.

답변

4

코드에서 sd 카드의 이미지를 전혀로드하지 않습니다. 이는 의도적입니까? 이것은 이미지 양식 SD 카드를 여는 방법입니다.

mBitmap = BitmapFactory.decodeFile("/sdcard/test.png"); 
관련 문제