Comment Transmettre l'image de la caméra à partir d'une intention d'autre intention dans android?
-
11-12-2019 - |
Question
Je suis en train d'envoyer l'image de la caméra à partir d'une intention à une autre intention à l'écran.Actuellement, je suis en train d'essayer en utilisant la méthode suivante,
Une fois l'image capturée
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);
Dans la deuxième activité
@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);
}
Mais il montre StackOverFlow d'erreur,
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)
Je ne suis pas sûr de savoir si je suis en train d'essayer mauvaise méthode.Je suis à la recherche pour certains de l'échantillon ou de solution à cette question.
Merci pour votre aide les gars.
La solution
utilisation
Bitmap receipt = BitmapFactory.decodeFile(photo.toString(),options);
Intent imagepass = new Intent(Activity1.this,Activity2.class);
imagepass.putExtra("imagepass", receipt );
startActivity(imagepass);
au lieu de
Bitmap receipt = BitmapFactory.decodeFile(photo.toString(),options);
Intent imagepass = new Intent(Activity1.this,Activity2.class);
imagepass.putExtra("imagepass", imagepass);
startActivity(imagepass);
Vous êtes de passage à l'Intention de l'instance imagepass dans imagepass.putExtra("imagepass", imagepass);
donc passer Bitmap
exemple dans imagepass.putExtra("imagepass", receipt );
EDIT:
pour la transmission des images (bitmaps) entre les activités dans android voir ces messages:
comment faites-vous passer des images (bitmaps) entre android activités à l'aide de faisceaux?
Comment puis-je passer un objet Bitmap à partir d'une activité à l'autre
Autres conseils
De ce que je peux voir votre passage, l'intention elle-même d'être envoyée.Essayez:
imagepass.putExtra("imagepass", receipt);
pourrait travailler, toujours nouveau à Android moi-même.
Nous pouvons essayer un autre moyen de convertir l'image en octet, puis passez le tableau d'octets par intention et dans l'activité appelée, nous pouvons convertir le tableau d'octets en bitmap