在Android中保存画布不是每次都有效

时间:2015-02-23 19:26:19

标签: android canvas surfaceview

我有这段代码:

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实际上将图像写入文件。

问题在于,大多数情况下会保存WHITE图像,有时会保存正确的图像。

我是否遗漏了某些内容,或者为什么图片只保存1/5次?

2 个答案:

答案 0 :(得分:1)

这对我有用:

Bitmap bitmap = Bitmap.createBitmap(colorGFX.getWidth(),
            colorGFX.getHeight(), Bitmap.Config.ARGB_8888);
Canvas canvas = new Canvas(bitmap);
canvas.drawColor(Color.WHITE);
canvas.drawBitmap(colorGFX.bitmap, 0f, 0f, null);
canvas.drawBitmap(colorGFX.pictureBitmap, 0f, 0f, null);
saveBitmap(bitmap);

答案 1 :(得分:0)

试试这个:

public void saveimage() {
    Bitmap bitmap = Bitmap.createBitmap(colorGFX.getWidth(),
            colorGFX.getHeight(), Bitmap.Config.ARGB_8888);
    colorGFX.draw(new Canvas(bitmap))
    saveBitmap(bitmap);
}