Come passare l'immagine della fotocamera da un intento all'altra intenzione di Android?
-
11-12-2019 - |
Domanda
Sto cercando di inviare l'immagine della fotocamera da un intento a un altro intento di mostrare.Attualmente sto provando usando il seguente metodo,
Una volta acquisita l'immagine
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
switch(requestCode)
{
case CAMERA_RECEIPTREQUEST:
if(resultCode== Activity.RESULT_OK)
{
BitmapFactory.Options options = new BitmapFactory.Options();
options.inSampleSize = 8;
//ImageView jpgView = (ImageView)findViewById(R.id.imageView1);
Bitmap receipt = BitmapFactory.decodeFile(photo.toString(),options);
Intent imagepass = new Intent(Activity1.this,Activity2.class);
imagepass.putExtra("imagepass", imagepass);
startActivity(imagepass);
.
nella seconda attività
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.receiptreview);
//creating view ids
createViewIds();
Bitmap receiptimage = (Bitmap) getIntent().getExtras().getParcelable("imagepass");
receipt.setImageBitmap(receiptimage);
}
.
Ma mostra l'errore di stackoverflow,
at java.util.HashMap$EntrySet.iterator(HashMap.java:944)
at android.os.Parcel.writeMapInternal(Parcel.java:486)
at android.os.Bundle.writeToParcel(Bundle.java:1552)
at android.os.Parcel.writeBundle(Parcel.java:502)
at android.content.Intent.writeToParcel(Intent.java:5477)
.
Non sono sicuro se sto provando un metodo sbagliato. Sto cercando qualche campione o soluzione a questo.
Grazie per il tuo aiuto ragazzi.
Soluzione
Usa
Bitmap receipt = BitmapFactory.decodeFile(photo.toString(),options);
Intent imagepass = new Intent(Activity1.this,Activity2.class);
imagepass.putExtra("imagepass", receipt );
startActivity(imagepass);
.
invece di
Bitmap receipt = BitmapFactory.decodeFile(photo.toString(),options);
Intent imagepass = new Intent(Activity1.this,Activity2.class);
imagepass.putExtra("imagepass", imagepass);
startActivity(imagepass);
.
Stai passando Imagepass Intent Imagepass in imagepass.putExtra("imagepass", imagepass);
Inserire l'istanza Bitmap
in imagepass.putExtra("imagepass", receipt );
Modifica:
Per il passaggio delle immagini (bitmap) tra le attività in Android vedi questi messaggi:
Come passano le immagini (bitmaps) Tra le attività Android utilizzando i bundle?
Altri suggerimenti
Da ciò che posso vedere il tuo passaggio dell'intento stesso da inviare.Prova:
imagepass.putExtra("imagepass", receipt);
.
potrebbe funzionare, ancora nuovo per Android me stesso.
Possiamo provare un altro modo per convertire l'immagine in matrice di byte e quindi passare l'array di byte attraverso l'intento e nell'attività che viene chiamato possiamo convertire l'array di byte in bitmap