0

我使用SurfaceView將兩個位圖圖片移動到屏幕上。 我嘗試這樣做:如何將畫布轉換爲位圖以保存在SD卡中

... 
@Override 
protected void onDraw(Canvas canvas) { 
    super.onDraw(canvas); 

    ... 

    canvas.drawBitmap(bitmap,matrix,paint); 
    canvas.drawBitmap(bitmap2,matrix,paint); 
} 
... 

如何能夠畫布保存到SD卡這樣的嗎?

public saveCanvasIntoSdCard(Canvas canvas) 
{ 

} 

回答

4

解決方案,我發現:

public Bitmap getBitmap() { 
    Bitmap bmOverlay = Bitmap.createBitmap(bitmap2.getWidth(), bitmap2.getHeight(), bitmap2.getConfig()); 
    Canvas canvas = new Canvas(bmOverlay); 
    canvas.drawBitmap(bitmap, matrix, null); 
    canvas.drawBitmap(bitmap2, 0, 0, null); 
    return bmOverlay; 
} 

public void save(View view){ 
    String root = Environment.getExternalStorageDirectory().toString(); 
    File myDir = new File(root + "/dress");  
    myDir.mkdirs(); 

    String fname = "save.jpg"; 
    File file = new File (myDir, fname); 
    if (file.exists()) file.delete(); 
    try { 
    FileOutputStream out = new FileOutputStream(file); 
    getBitmap().compress(Bitmap.CompressFormat.JPEG, 100, out); 
    out.flush(); 
    out.close(); 

    } catch (Exception e) { 
    e.printStackTrace(); 
    } 

} 
+1

什麼矩陣?它是身份矩陣嗎? – Hector