4

in my app you can click on a image view which gives you the option to chose an image from the sd card or take a new picture with the camera. I already implemented the option to chose an image from the sd card. Now I am left with the camera option.

My question: How can I get the image path of any new image taken with the camera?

Below you find the code I use to open up the the Dialog window and the way I get the path of images from the sd card.

1.This is the code for the dialog:

private void showImageDialog() {
    final String [] items = new String [] {"From Camera", "From SD Card"};
    ArrayAdapter<String> adapter = new ArrayAdapter<String> (this, android.R.layout.select_dialog_item,items);
    AlertDialog.Builder builder = new AlertDialog.Builder(this);

    builder.setTitle("Select Image");
    builder.setAdapter( adapter, new DialogInterface.OnClickListener() {
        public void onClick( DialogInterface dialog, int item ) {
            if (item == 0) {
                Intent intent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);
                File file = new File(Environment.getExternalStorageDirectory(),
                                    "tmp_avatar_" + String.valueOf(System.currentTimeMillis()) + ".jpg");
                mImageCaptureUri = Uri.fromFile(file);

                try {
                    intent.putExtra(android.provider.MediaStore.EXTRA_OUTPUT, mImageCaptureUri);
                    intent.putExtra("return-data", true);

                    startActivityForResult(intent, PICK_FROM_CAMERA);
                } catch (Exception e) {
                    e.printStackTrace();
                }

                dialog.cancel();
            } else {
                Intent intent = new Intent();

                intent.setType("image/*");
                intent.setAction(Intent.ACTION_GET_CONTENT);

                startActivityForResult(Intent.createChooser(intent, "Complete action using"), PICK_FROM_FILE);
            }
        }
    } );

    final AlertDialog dialog = builder.create();
    dialog.show();
}

2.And this is what is use to get the image path from the sd card image.

@Override
public void onActivityResult(int requestCode, int resultCode, Intent data) {
    if (resultCode == RESULT_OK) {
        if (requestCode == PICK_FROM_FILE || requestCode == PICK_FROM_CAMERA) {
            Uri selectedImageUri = data.getData();
            selectedImagePath = getPath(selectedImageUri);

            Log.v("IMAGE PATH====>>>> ",selectedImagePath);

            // Decode, scale and set the image.
            Bitmap myBitmap = BitmapFactory.decodeFile(selectedImagePath);
            Bitmap scaledBitmap = Bitmap.createScaledBitmap(myBitmap, NEW_WIDTH, NEW_HEIGHT, true);
            myBitmap.recycle();
            myBitmap = null;

            mImageView.setImageBitmap(scaledBitmap);
            mImageView.setTag(selectedImagePath);
        } 

    }
}
dotjoe
  • 26,242
  • 5
  • 63
  • 77
user1420042
  • 1,689
  • 9
  • 35
  • 53
  • Possible duplicate of http://stackoverflow.com/questions/1910608/android-action-image-capture-intent – Sana Jun 05 '12 at 21:18
  • possible duplicate of [Get Path of image from ACTION_IMAGE_CAPTURE intent](http://stackoverflow.com/questions/4184951/get-path-of-image-from-action-image-capture-intent) – dymmeh Jun 05 '12 at 21:26
  • Thanks! @dymmeh your link work perfectly for me! – user1420042 Jun 05 '12 at 21:54

0 Answers0