es zu einem Byte konvertieren Array, bevor Sie es der Absicht hinzufügen, senden und dekodieren.
//Convert to byte array
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 Aktion 2:
byte[] byteArray = getIntent().getByteArrayExtra("image");
Bitmap bmp = BitmapFactory.decodeByteArray(byteArray, 0, byteArray.length);
bearbeiten
dachte ich, das den Regeln der Technik aktualisieren sollte:
In Ihrer ersten Aktivität, sollten Sie sparen Die Bitmap auf Festplatte wird dann in der nächsten Aktivität geladen. Stellen Sie sicher, dass Ihre Bitmap in der ersten Aktivität zu grundieren es für die Garbage Collection recyceln:
Aktivität 1:
try {
//Write file
String filename = "bitmap.png";
FileOutputStream stream = this.openFileOutput(filename, Context.MODE_PRIVATE);
bmp.compress(Bitmap.CompressFormat.PNG, 100, stream);
//Cleanup
stream.close();
bmp.recycle();
//Pop intent
Intent in1 = new Intent(this, Activity2.class);
in1.putExtra("image", filename);
startActivity(in1);
} catch (Exception e) {
e.printStackTrace();
}
In Activity 2, laden 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!
Dies ist keine Kopie Ihres Codes, wie ich mindestens zwei Tippfehler sehe. – Christine
@Christine: das ist wirklich mein Code hehe ,,, aber ich hatte es aus vielen Tutorial ... XP –
Also, wie Sie ein Bitmap bmp2 erstellen, und Sie setzen es mit setImageBitmap (BMP)? Und sicherlich funktioniert R.Id.imageView1 nicht. Es sollte R.id.imageView1 sein. – Christine