由于Parceable(1mb)的大小限制,将位图在活动之间作为可解析的方式传递不是一个好主意。您可以将位图存储在内部存储的文件中,并在多个活动中检索存储的位图。这是一些示例代码。
将位图存储在文件中MyImage在内部储存:public String createImageFromBitmap(Bitmap bitmap) {
String fileName = "myImage";//no .png or .jpg needed
try {
ByteArrayOutputStream bytes = new ByteArrayOutputStream();
bitmap.compress(Bitmap.CompressFormat.JPEG, 100, bytes);
FileOutputStream fo = openFileOutput(fileName, Context.MODE_PRIVATE);
fo.write(bytes.toByteArray());
// remember close file output
fo.close();
} catch (Exception e) {
e.printStackTrace();
fileName = null;
}
return fileName;}
然后,在下一个活动中,您可以使用以下代码将该文件myImage解码为位图://here context can be anything like getActivity() for fragment, this or MainActivity.this
Bitmap bitmap = BitmapFactory.decodeStream(context.openFileInput("myImage"));
注大量的零和缩放位图检查是完整的。