如何在android中保存绘图canvas?

我正在使用开发者网站的这个API演示, 这个演示。

但我很奇怪如何将该图像保存到我的Andrtoid设备。 请任何人给代码将该绘制的图像保存到Android设备。

谢谢。

试试这段代码

View content = your_view; content.setDrawingCacheEnabled(true); content.setDrawingCacheQuality(View.DRAWING_CACHE_QUALITY_HIGH); Bitmap bitmap = content.getDrawingCache(); String path = Environment.getExternalStorageDirectory().getAbsolutePath(); File file = new File(path+"/image.png"); FileOutputStream ostream; try { file.createNewFile(); ostream = new FileOutputStream(file); bitmap.compress(CompressFormat.PNG, 100, ostream); ostream.flush(); ostream.close(); Toast.makeText(getApplicationContext(), "image saved", 5000).show(); } catch (Exception e) { e.printStackTrace(); Toast.makeText(getApplicationContext(), "error", 5000).show(); } 

一个选项是创建另一个Canvas(如下所示)并在这个新canvas上重复所有绘图。 完成后,调用drawBitmap。

 Bitmap bitmap = new Bitmap(// Set the params you like //); Canvas canvas = new Canvas(bitmap); // Do all your drawings here canvas.drawBitmap(// The first picture //); 

最好的方法是,如果有一种方法来复制现有的canvas,然后你不需要重新绘制所有东西,但我找不到一个。

 drawView.setDrawingCacheEnabled(true); Bitmap bm = null; drawView.destroyDrawingCache(); bm=drawView.getDrawingCache(); 

然后使用位图工厂将位图写入文件。