0

The image is saved in the desired folder but it is not being displayed in imageView nor the Toast is being displayed.I have tried with with almost every method like using different XML files and changing class as well but the problem still resides.

package com.example.mohammadhasham.jtbopencameramodule;

import android.app.Activity;
import android.content.Intent;
import android.graphics.Bitmap;
import android.graphics.BitmapFactory;
import android.icu.text.SimpleDateFormat;
import android.net.Uri;
import android.os.Bundle;
import android.os.Environment;
import android.provider.MediaStore;
import android.support.design.widget.FloatingActionButton;
import android.support.design.widget.Snackbar;
import android.support.v4.content.FileProvider;
import android.support.v7.app.AppCompatActivity;
import android.support.v7.widget.Toolbar;
import android.view.View;
import android.widget.Button;
import android.widget.ImageView;
import android.widget.Toast;

import java.io.File;
import java.util.Date;

public class CameraActivity extends AppCompatActivity {

    ImageView img;
    String currentPath;
    File f;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_camera);

        img = (ImageView) (findViewById(R.id.capture));


    }

    public void captureImage(View v) {

        Intent i = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);
        f = new File(Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_DOWNLOADS), "image.jpg");
        Uri u = Uri.fromFile(f);
        i.putExtra(MediaStore.EXTRA_OUTPUT, u);
        i.putExtra(MediaStore.EXTRA_VIDEO_QUALITY, 1);
        startActivityForResult(i, 0);
    }

    @Override
    protected void onActivityResult(int requestCode, int resultCode, Intent data) {

        if (resultCode == 0) {
            switch (resultCode) {
                case Activity.RESULT_OK:
                {
                    if (f.exists())
                    {
                        Toast.makeText(this, "Image Saved To Gallery", Toast.LENGTH_LONG).show();
                         Bitmap b = BitmapFactory.decodeFile(f.getAbsolutePath());
                          img.setImageBitmap(b);


                    }
                    else
                    {
                        Toast.makeText(this, "Image Not Saved To Gallery", Toast.LENGTH_LONG).show();

                    }
                    break;
                }
                case Activity.RESULT_CANCELED:
                {
                    break;
                }
                default:
                    break;
            }
        }
    }

}
1
  • The image is saved in the desired folder. Strange start of your post. Which image? Tell what happens from the start. After that show your code. Commented Oct 25, 2016 at 20:51

2 Answers 2

1

I believe you have a mistake in your code:

You say

if (resultCode == 0) {
            switch (resultCode) {
                case Activity.RESULT_OK:
                {

You're restricting resultCode to the value 0, and then trying to execute a switch based on it's value.

Sign up to request clarification or add additional context in comments.

1 Comment

I am really stupid! Wasted an hour! Thanks that really worked.
0

Try this:

public class CameraActivity extends AppCompatActivity {

private final String APP_TAG = "MyCustomApp";
private static final int REQUEST_IMAGE_CAPTURE = 1;
private String photoFileName = "photo.jpg";

private ImageView img;

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);


    img = (ImageView) (findViewById(R.id.imageView));
}

public void captureImage(View v) {

    Intent takePictureIntent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);
    if (takePictureIntent.resolveActivity(getPackageManager()) != null) {
        takePictureIntent.putExtra(MediaStore.EXTRA_OUTPUT, getPhotoFileUri(photoFileName));
        takePictureIntent.putExtra(MediaStore.EXTRA_VIDEO_QUALITY, 1);
        startActivityForResult(takePictureIntent, REQUEST_IMAGE_CAPTURE);
    }
}

@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {

    if (requestCode == REQUEST_IMAGE_CAPTURE && resultCode == RESULT_OK) {
        Toast.makeText(this, "Image Saved To Gallery", Toast.LENGTH_LONG).show();

        Uri takenPhotoUri = getPhotoFileUri(photoFileName);
        Bitmap imageBitmap = BitmapFactory.decodeFile(takenPhotoUri.getPath());
        img.setImageBitmap(imageBitmap);
    } else {
        Toast.makeText(this, "Image Not Saved To Gallery", Toast.LENGTH_LONG).show();

    }
}

// Returns the Uri for a photo stored on disk given the fileName
public Uri getPhotoFileUri(String fileName) {
    File mediaStorageDir = new File(Environment.getExternalStoragePublicDirectory(
            Environment.DIRECTORY_DOWNLOADS).getAbsolutePath());

    // Create the storage directory if it does not exist
    if (!mediaStorageDir.exists() && !mediaStorageDir.mkdirs()) {
        Log.d(APP_TAG, "failed to create directory");
    }

    // Return the file target for the photo based on filename
    return Uri.fromFile(new File(mediaStorageDir.getPath() + File.separator + fileName));
}

}

Comments

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.