0

J'utilise SurfaceView pour déplacer deux images bitmap sur l'écran. Je essayé ceci:Comment puis-je convertir le canevas en bitmap pour enregistrer dans sdCard

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

    ... 

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

Comment il possible de sauver la toile dans SDCard comme ça?

public saveCanvasIntoSdCard(Canvas canvas) 
{ 

} 

Répondre

4

Solution J'ai trouvé:

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

ce qui est la matrice? Est-ce la matrice identitaire? – Hector

Questions connexes