2012-09-17 58 views
0

在我的Paint應用程序中,我需要保存繪製的圖像。我的代碼正在工作,但圖像沒有保存到SD卡。下面我使用過的代碼。爲什麼我無法將表面視圖上的畫布繪製保存到Android中的SD卡

drawingSurfaceView.buildDrawingCache(); 
    Bitmap bmap = drawingSurfaceView.getDrawingCache(); 
    String extStorageDirectory = Environment.getExternalStorageDirectory() 
      .toString(); 
    File file = new File(extStorageDirectory, "imag.PNG"); 
    FileOutputStream outStream; 
    try { 
     outStream = new FileOutputStream(file); 
     bmap.compress(Bitmap.CompressFormat.PNG, 100, outStream); 

     MediaStore.Images.Media.insertImage(getContentResolver(), 
       file.getAbsolutePath(), file.getName(), file.getName()); 

    } catch (FileNotFoundException e) { 
     // TODO Auto-generated catch block 
     e.printStackTrace(); 
    } 

請告訴我,通過使用吸氣劑ANS位圖的制定者像drwaSurfaceView.setBitmap() 和drwaSurfaceView.getBitmap()什麼是錯的代碼

回答

0

我已經解決了。在我的SurfaceView類中,我已經創建了`public Bitmap getBitmap(){ return scaled; }

public void setBitmap(Bitmap scaled) { 
    this.scaled = scaled; 
}` 

和Thread類,我要節省油漆和背景圖像像`類DrawThread繼承Thread { 私人SurfaceHolder mSurfaceHolder;

public DrawThread(SurfaceHolder surfaceHolder) { 
     mSurfaceHolder = surfaceHolder; 

    } 

    public void setRunning(boolean run) { 
     _run = run; 
    } 

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

        if (scaled == null) { 
         scaled = Bitmap.createScaledBitmap(background, w, 
           h, true); 
        } 

        if (DrawAppActivity.saveBtnFlag == 1) { 
         DrawAppActivity.saveBtnFlag = 0; 
         final Canvas c = new Canvas(scaled); 
         commandManager.executeAll(c); 
         canvas.drawBitmap(scaled, 0, 0, null); 
         commandManager.executeAll(canvas); 
        } else { 
         canvas.drawBitmap(scaled, 0, 0, fillPaint); 
         commandManager.executeAll(canvas); 
        } 

       } finally { 
        mSurfaceHolder.unlockCanvasAndPost(canvas); 
       } 
      } 
     } 
    } 
}`