【发布时间】:2015-02-23 19:26:19
【问题描述】:
我有这个代码:
public void saveimage() {
Bitmap bitmap = Bitmap.createBitmap(colorGFX.getWidth(),
colorGFX.getHeight(), Bitmap.Config.ARGB_8888);
Canvas canvas = new Canvas(bitmap);
canvas.drawColor(Color.WHITE);
canvas = colorGFX.canvas;
canvas.setBitmap(bitmap);
saveBitmap(bitmap);
}
colorGFX 对象扩展了 SurfaceView。
saveBitmap 实际上将图像写入文件。
问题是大多数时候保存的是白色图像,而其他时候保存的是正确的图像。
我是否遗漏了什么,或者为什么图像只保存了 1/5 次?
【问题讨论】:
-
如果替换3行Canvas canvas = new Canvas(bitmap); canvas.drawColor(Color.WHITE);画布 = colorGFX.canvas;只有 1 行:Canvas canvas = colorGFX.canvas;会发生什么?
-
然后保存一个空白(黑色)图像。
-
如果你添加 colorGFX.invalidate();就在 canvas.setBitmap(bitmap); 之前你得到了什么?
-
什么也没发生。和以前一样,有时它会保存图像,但大多数时候它会保存一个白色的空图像。
标签: android canvas surfaceview