Frage

Ich versuche, ein Kamerabild von einer Absicht zu einer anderen Absicht zu senden, um es anzuzeigen.Derzeit versuche ich die folgende Methode zu verwenden,

Sobald das Bild aufgenommen wurde

     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);

In der zweiten Aktivität

      @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); 
    } 

Aber es zeigt StackOverFlow-Fehler,

        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)

Ich bin mir nicht sicher, ob ich die falsche Methode versuche.Ich suche nach einem Beispiel oder einer Lösung dafür.

Danke für eure Hilfe Jungs.

War es hilfreich?

Lösung

verwenden

         Bitmap receipt = BitmapFactory.decodeFile(photo.toString(),options);  

         Intent imagepass = new Intent(Activity1.this,Activity2.class);
         imagepass.putExtra("imagepass", receipt );
         startActivity(imagepass);

statt

        Bitmap receipt = BitmapFactory.decodeFile(photo.toString(),options);  

         Intent imagepass = new Intent(Activity1.this,Activity2.class);
         imagepass.putExtra("imagepass", imagepass);
         startActivity(imagepass);

Sie übergeben die Intent Instanz imagepass in imagepass.putExtra("imagepass", imagepass); also pass auf Bitmap beispiel in imagepass.putExtra("imagepass", receipt );

BEARBEITEN:

informationen zum Übergeben von Bildern (Bitmaps) zwischen Aktivitäten in Android finden Sie in diesen Beiträgen:

wie übergeben Sie Bilder (Bitmaps) zwischen Android-Aktivitäten mithilfe von Bundles?

Wie kann ich ein Bitmap-Objekt von einer Aktivität an eine andere übergeben

Andere Tipps

Von dem, was ich sehen kann, wie ich das Abzulassen selbst sehen kann, um gesendet zu werden.Versuchen Sie: generasacodicetagpre.

könnte arbeiten, immer noch neu für Android selbst.

Wir können eine andere Möglichkeit versuchen, das Bild in Byte-Array umzuwandeln, und das Byte-Array durch Absicht übergeben, und in der aufgerufenen Aktivität können wir das Byte-Array in Bitmap

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top