我正在使用用户输入的数据以编程方式绘制到画布上。输入所有数据后,用户可以翻阅图像并将它们绘制到画布上。用户可以选择保存所有图像(可能是几百张)。我使用在 UI 线程上运行的可运行对象,该线程将绘制并保存每个图像(因为您无法从 AsyncTask 绘制到画布)。这可行,但我遇到的问题是,如果在保存过程中,用户关闭屏幕或最小化应用程序。这会导致 jpeg 只是黑色。我希望保存的东西可以在后台运行并且仍然有效。
用于绘制到画布并保存图像的代码:
protected void onDraw(Canvas canvas) {
super.onDraw(canvas);
Bitmap bitmap;
bitmap = Bitmap.createBitmap(width, height, Bitmap.Config.ARGB_8888);
canvas.setBitmap(bitmap);
// draw everything here
OutputStream stream = new FileOutputStream(imageName + ".jpg");
bitmap.compress(CompressFormat.JPEG, 100, stream);
stream.close();
}
那么,有没有办法在画布不可见的情况下绘制图像并将其保存到背景文件中?任何帮助,将不胜感激!