user6694876
user6694876

Reputation:

Why does the Camera Intent not returning the image to the ImageView?

What I am trying to achieve is on the map long press it brings up and custom dialog view with 3 buttons, one for photo, one for save and one for cancel.

So at the moment when tapping on photo the camera intent opens and I can take a photo. Upon clicking "ok" the intent returns to the custom dialog window but no image is displayed?

This is my code I am using at the moment:

public void onMapLongClick(LatLng point) {
            LayoutInflater factory = LayoutInflater.from(MainActivity.this);
            final View deleteDialogView = factory.inflate(R.layout.custom_dialog, null);
            final AlertDialog deleteDialog = new AlertDialog.Builder(MainActivity.this).create();
            deleteDialog.setView(deleteDialogView);
            deleteDialogView.findViewById(R.id.btn_photo).setOnClickListener(new View.OnClickListener() {
                @Override
                public void onClick(View v) {
                    Intent cameraIntent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);
                    String f = System.currentTimeMillis()+".jpg"; // Designated name
                    File file = new File(Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_DCIM), f);
                    fileUri = FileProvider.getUriForFile(MainActivity.this, getPackageName() + ".fileprovider", file);
                    cameraIntent.putExtra(MediaStore.EXTRA_OUTPUT, fileUri);
                    startActivityForResult(cameraIntent, TAKE_PICTURE);
                }
                protected void onActivityResult(int requestCode, int resultCode, @Nullable Intent data) {
                    switch (requestCode) {
                        case TAKE_PICTURE:
                            ImageView imgView = findViewById(R.id.a);
                            imgView.setImageURI(fileUri);
                            break;

                    }
                }
            });  

Upvotes: 0

Views: 230

Answers (1)

Geeky bean
Geeky bean

Reputation: 525

Notice that you pass 'fileUri' to the intent, so you also need to get it from the returned intent.

Try replacing imgView.setImageURI(fileUri);

with imgView.setImageURI(data.getData());

or

Bundle extras = data.getExtras();
Bitmap imageBitmap = (Bitmap) extras.get("data"); 

which will give you the URI with the image.

Upvotes: 1

Related Questions