1

書き込み部分はtry,catchで囲んでいますが、trycatchメソッドでないとエミュレーターでアプリがクラッシュしてしまうようです。キャンバスをビットマップとして保存しようとしていて、ビットマップをストレージに保存しています...

screenshot = Bitmap.createBitmap(screenshot, 0, 0, 0, 0);
Canvas can = new Canvas(screenshot);
int i = 0;
String filename = "EnderShot";
while (new File(filename + i + ".png") != null){
    FileOutputStream fos = null;
    fos = openFileOutput(filename + i + ".png", Context.MODE_PRIVATE);
    fos.write(screenshot.getByteCount());
    fos.close();
}

これもそれを保存します...だから、誰かがそれを解決できたら?

4

1 に答える 1

1

キャンバスに描画するものはすべて、実際には基になるビットマップに描画されます。

この場合:screenshot

したがって、すでにキャンバスのビットマップがあり、キャンバスをビットマップに変換する必要はありません。

ビットマップをファイルに保存するには

try {
   FileOutputStream out = new FileOutputStream(filename + i + ".png");
   screenshot.compress(Bitmap.CompressFormat.PNG, 90, out);
   out.flush();
   out.close();
} catch (Exception e) {
   e.printStackTrace();
}
于 2012-08-09T17:16:50.960 に答える