Как пройти изображение камеры от одного намерения на другие намерения в Android?

StackOverflow https://stackoverflow.com//questions/10655213

Вопрос

Я пытаюсь отправить изображение камеры из одного намерения на другое намерение отображать.В настоящее время я пытаюсь использовать следующий метод,

После того, как изображение захвачено

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

во второй активности

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

Но он показывает ошибку 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)
.

Я не уверен, пробую ли я неправильный метод. Я ищу определенный образец или решение этого.

Спасибо за вашу помощь, ребята.

Это было полезно?

Решение

Использование

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

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

вместо

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

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

Вы передаваете Image Image Image в imagepass.putExtra("imagepass", imagepass);, так что пройдите экземпляр Bitmap в imagepass.putExtra("imagepass", receipt );

Редактировать:

Для прохождения изображений (растровые изображения) между мероприятиями в Android см. Эти сообщения:

Как вы проходите изображения (растровые изображения) между действиями Android с использованием пучков?

Другие советы

от того, что я вижу, что вы проходите, чтобы отправить себя.Попробуйте:

imagepass.putExtra("imagepass", receipt);
.

Может работать, все еще новичок в андроид сам.

Мы можем попробовать другой способ преобразовать изображение в байтовую массив, а затем пройти массив байтов через намерение, а в вызываемой деятельности мы можем преобразовать массив байта в Bitmap

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top