Konvertieren Sie es in ein Byte-Array, bevor Sie es der Absicht hinzufügen, senden und dekodieren.
ByteArrayOutputStream stream = new ByteArrayOutputStream();
bmp.compress(Bitmap.CompressFormat.PNG, 100, stream);
byte[] byteArray = stream.toByteArray();
Intent in1 = new Intent(this, Activity2.class);
in1.putExtra("image",byteArray);
Dann in Aktivität 2:
byte[] byteArray = getIntent().getByteArrayExtra("image");
Bitmap bmp = BitmapFactory.decodeByteArray(byteArray, 0, byteArray.length);
bearbeiten
Ich dachte, ich sollte dies mit Best Practice aktualisieren:
In Ihrer ersten Aktivität sollten Sie die Bitmap auf der Festplatte speichern und in der nächsten Aktivität laden. Stellen Sie sicher, dass Sie Ihre Bitmap in der ersten Aktivität recyceln, um sie für die Speicherbereinigung vorzubereiten:
Aktivität 1:
try {
String filename = "bitmap.png";
FileOutputStream stream = this.openFileOutput(filename, Context.MODE_PRIVATE);
bmp.compress(Bitmap.CompressFormat.PNG, 100, stream);
stream.close();
bmp.recycle();
Intent in1 = new Intent(this, Activity2.class);
in1.putExtra("image", filename);
startActivity(in1);
} catch (Exception e) {
e.printStackTrace();
}
Laden Sie in Aktivität 2 die Bitmap:
Bitmap bmp = null;
String filename = getIntent().getStringExtra("image");
try {
FileInputStream is = this.openFileInput(filename);
bmp = BitmapFactory.decodeStream(is);
is.close();
} catch (Exception e) {
e.printStackTrace();
}
Prost!