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.

Était-ce utile?

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

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top