【发布时间】:2015-10-16 14:18:11
【问题描述】:
我正在用 android 制作一个绘图应用程序。
在这里,我将画布上的绘图保存为 png 图像。我正在使用 Bitmap 数组来保存画布中的绘图。
if(view.getId()==R.id.save_btn){
//save drawing
AlertDialog.Builder saveDialog = new AlertDialog.Builder(this);
saveDialog.setTitle("Save drawing");
saveDialog.setMessage("Save drawing to device Gallery?");
saveDialog.setPositiveButton("Yes", new DialogInterface.OnClickListener(){
public void onClick(DialogInterface dialog, int which){
int k=0;
//save drawing
while(bits[k]!=null) {
Bitmap m = null;
m = bits[k];
String path = Environment.getExternalStorageDirectory().getAbsolutePath();
File file = new File(path + File.separator + "Pictures" + File.separator + k + "_image.png");
FileOutputStream ostream;
try {
file.createNewFile();
ostream = new FileOutputStream(file);
m.compress(Bitmap.CompressFormat.PNG, 100, ostream);
ostream.flush();
ostream.close();
Toast.makeText(getApplicationContext(), "image saved :" + path, Toast.LENGTH_SHORT).show();
} catch (Exception e) {
e.printStackTrace();
Toast.makeText(getApplicationContext(), "error", Toast.LENGTH_SHORT).show();
}
k=k+1;
}
i=0;
bits=null;
}
}
}
这里我将视图的 drawingCache 保存到位图数组中。 即使我的画布是空的,这里仍然会保存一个空白图像。
我不想要那个。我只想在画布上有任何绘图时保存。
那么有没有办法做到这一点呢?
或者有什么方法可以检查画布上是否有绘图??
【问题讨论】:
-
你能设置一个标志/布尔值,在第一次绘图后改变吗?
-
我没有尝试设置任何标志。我非常同意亨利的回答。但我认为这是可能的。
标签: android canvas bitmap android-canvas android-bitmap