Как передать изображение другому действию с намерением

У меня нижняя панель. И на нем есть значок камеры. Когда я нажимаю на значок. Он показывает мне диалог. В этом диалоговом окне есть 3 кнопки. Это запрос камеры, запрос галереи и отмена. Я делаю фото с просьбой камеры сделать то, что я имел обыкновение делать. И я нажимаю кнопку фиксации (кнопка по умолчанию в эмуляторе). Но это дает мне исключение. Моя цель: я хочу отправить это сделанное фото на другое мероприятие. Затем установите его в режим просмотра изображений. Как я могу это сделать?

Вот моя кнопка фиксации: введите описание изображения здесь

Как передать изображение другому действию с намерением

мой Logcat:

05-20 15:25:01.635 2653-2653/something.about.berkay.isim E/AndroidRuntime: FATAL EXCEPTION: main
    Process: something.about.berkay.isim, PID: 2653
    java.lang.RuntimeException: Failure delivering result ResultInfo{who=null, request=1888, result=-1, data=Intent { act=inline-data (has extras) }} to activity {something.about.berkay.isim/something.about.berkay.isim.bottom_bar}: java.lang.NullPointerException
        at android.app.ActivityThread.deliverResults(ActivityThread.java:3365)
        at android.app.ActivityThread.handleSendResult(ActivityThread.java:3408)
        at android.app.ActivityThread.access$1300(ActivityThread.java:135)
        at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1244)
        at android.os.Handler.dispatchMessage(Handler.java:102)
        at android.os.Looper.loop(Looper.java:136)
        at android.app.ActivityThread.main(ActivityThread.java:5017)
        at java.lang.reflect.Method.invokeNative(Native Method)
        at java.lang.reflect.Method.invoke(Method.java:515)
        at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:779)
        at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:595)
        at dalvik.system.NativeStart.main(Native Method)
     Caused by: java.lang.NullPointerException
        at something.about.berkay.isim.bottom_bar.onActivityResult(bottom_bar.java:186)
        at android.app.Activity.dispatchActivityResult(Activity.java:5423)
        at android.app.ActivityThread.deliverResults(ActivityThread.java:3361)
        at android.app.ActivityThread.handleSendResult(ActivityThread.java:3408) 
        at android.app.ActivityThread.access$1300(ActivityThread.java:135) 
        at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1244) 
        at android.os.Handler.dispatchMessage(Handler.java:102) 
        at android.os.Looper.loop(Looper.java:136) 
        at android.app.ActivityThread.main(ActivityThread.java:5017) 
        at java.lang.reflect.Method.invokeNative(Native Method) 
        at java.lang.reflect.Method.invoke(Method.java:515) 
        at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:779) 
        at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:595) 
        at dalvik.system.NativeStart.main(Native Method) 

Вот мой код:

  private static final int CAMERA_REQUEST = 1888;
   private void openCamera() {

        Intent takePicture = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);
        startActivityForResult(takePicture, CAMERA_REQUEST);


        try {
           /* camera.takePicture();*/
            dialog.dismiss();
        }catch (Exception e){
            e.printStackTrace();
        }

    }

 protected void onActivityResult(int requestCode, int resultCode, Intent data) {
        super.onActivityResult(requestCode, resultCode, data);


       switch (requestCode){
           case GALLERY_REQUEST : if (resultCode == RESULT_OK){   //gallery için 1
               Uri selectedImage = data.getData();
            //   deneme.setImageURI(selectedImage);
           }break;
           case CAMERA_REQUEST : if (resultCode == RESULT_OK){

              Uri selectedImage = data.getData();
           Intent i = new Intent(bottom_bar.this , fotograf_cekildikten_sonra_kaydet_iptal_yeri.class);
           i.putExtra("dene " ,selectedImage);
         startActivity(i);



           }

       }

Другая моя деятельность:

 setContentView(R.layout.fotograf_cekildikten_sonra_kaydet_iptal_yeri);

    Bundle extras = getIntent().getExtras();
    Uri uri = extras.getParcelableExtra("dene");
    ımageView = (ImageView)findViewById(R.id.telefon_arama_ImageView);

    ımageView.setImageResource(uri);

какое исключение?

John Joe 20.05.2018 16:52

Я отредактировал свой вопрос. сейчас

Berkay Isıkoglu 20.05.2018 16:55

Проблема в fotograf_cekildikten_sonra_kaydet_iptal_yeri.onCreate, это не тот код, который вы опубликовали, если я прав.

M. le Rutte 20.05.2018 16:59
"И я нажимаю кнопку фиксации (в кнопке по умолчанию для эмолетов). Но это дает мне исключение. "Где код кнопки фиксации?
John Joe 20.05.2018 17:04

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

denvercoder9 20.05.2018 17:11
3
6
88
1

Ответы 1

Намерения не предназначены для передачи больших данных. Это механизм обмена сообщениями внутри вашего процесса (приложения) или IPC. Если вы попытаетесь передать большие данные вы, вероятно, получите исключение TransactionTooLargeException. Что вы можете сделать, так это сохранить фотографию в своей локальной файловой системе, а затем передать uri этой фотографии в другая деятельность через намерение. Вот официальное руководство, как это сделать: фотобазика

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