1

I am little confusion about how to get image name, when taking photo from camera(Current Click image) or sd card(Already cliked or in the sd card image).Could you please help me out how to get image name.

if (requestCode == CAMERA_REQUEST) {
ImageView profImage;
Bitmap photo = (Bitmap) data.getExtras().get("data");
Bitmap scaledphoto = Bitmap.createScaledBitmap(photo, height, width,
                        true);
profImage.setImageBitmap(scaledphoto);
//How to get name here
}

Now , Here How to get ImageName for propose of saving image on database.

Or

Imageview test=(Imageview) findViewById(R.id.testimage);
test.setImageResource(R.drawable.androidimage);

So, I want get name of image, Here image name is androidimage.SO How to get imagename.

3 Answers3

0

You can pass the Bitmap to this method to get Image Uri.

public Uri getImageUri(Context inContext, Bitmap inImage) {
        ByteArrayOutputStream bytes = new ByteArrayOutputStream();
        inImage.compress(Bitmap.CompressFormat.JPEG, 100, bytes);
        String path = Images.Media.insertImage(inContext.getContentResolver(),
                inImage, "Title", null);
        return Uri.parse(path);
    }

Finally you can set the image to image view with

imageView.setImageUri(mUri);
Ajay
  • 4,850
  • 2
  • 32
  • 44
  • I did this, I set image on imageView. If i want know, which image(name of image) set on imageview.The what can i do ? means how to get image name. – user2002673 Apr 25 '13 at 06:11
  • try with this one String scheme = mUri.getScheme(); if (scheme.equals("file")) { fileName = uri.getLastPathSegment(); } – Ajay Apr 25 '13 at 06:23
  • you can read here for more detail https://groups.google.com/forum/?fromgroups=#!topic/android-beginners/hBJxjgLBWpE – Ajay Apr 25 '13 at 06:31
0

Updated Code

Gallery :

    Intent photoPickerIntent = new Intent(
            Intent.ACTION_GET_CONTENT);
    photoPickerIntent.setType("image/*");
    startActivityForResult(photoPickerIntent, CAMERA_PIC_REQUEST);

onActivityResult

@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
    // TODO Auto-generated method stub
    super.onActivityResult(requestCode, resultCode, data);
    if (requestCode == CAMERA_PIC_REQUEST) {


        Uri selectedImage = data.getData();

        String filePath = getRealPathFromURI(selectedImage);
        // used in show HD images
        BitmapFactory.Options bounds = new BitmapFactory.Options();
        // divide bitmap to 4 sample size it can be 2rest(2,4,8 etc)
        bounds.inSampleSize = 4;
        // get bitmap from bounds and file path
        Bitmap bmp = BitmapFactory.decodeFile(filePath, bounds);

        imageView.setImageBitmap(bmp);
        Uri selectedImageUri1 = data.getData();
        String path = getRealPathFromURI(selectedImageUri1);
        File file = new File(path);
        textView.setText(file.getName());

    }
}

public String getRealPathFromURI(Uri contentUri) {
    String[] proj = { MediaStore.Images.Media.DATA };
    Cursor cursor = managedQuery(contentUri, proj, null, null, null);
    int column_index = cursor
            .getColumnIndexOrThrow(MediaStore.Images.Media.DATA);
    cursor.moveToFirst();
    return cursor.getString(column_index);
}
Ronak Mehta
  • 5,971
  • 5
  • 42
  • 69
0

Please use the following code.

public class UploadImageActivity extends Activity {
private final int CAMERA_PICTURE = 1;
private final int GALLERY_PICTURE = 2;
private ImageView userPictureImageView;
private Intent pictureActionIntent = null;

@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.main1);

    userPictureImageView = (ImageView) findViewById(R.id.imageView1);
    userPictureImageView.setOnClickListener(new OnClickListener() {
        public void onClick(View v) {
            startDialog();
        }

    });
}

protected void onActivityResult(int requestCode, int resultCode, Intent data) {
    super.onActivityResult(requestCode, resultCode, data);
    if (requestCode == GALLERY_PICTURE) {
        Uri uri = data.getData();
        if (uri != null) {
            // User had pick an image.
            Cursor cursor = getContentResolver().query(uri, new String[] { android.provider.MediaStore.Images.ImageColumns.DATA }, null, null, null);
            cursor.moveToFirst();
            // Link to the image
            final String imageFilePath = cursor.getString(0);
            File photos = new File(imageFilePath);
            Bitmap b = decodeFile(photos);
            b = Bitmap.createScaledBitmap(b, 150, 150, true);
            userPictureImageView.setImageBitmap(b);
            cursor.close();
        }
        else {
            Toast toast = Toast.makeText(this, "No Image is selected.", Toast.LENGTH_LONG);
            toast.show();
        }
    }
    else if (requestCode == CAMERA_PICTURE) {
        if (data.getExtras() != null) {
            // here is the image from camera
            Bitmap bitmap = (Bitmap) data.getExtras().get("data");
            userPictureImageView.setImageBitmap(bitmap);
        }
    }
}

private Bitmap decodeFile(File f) {
    try {
        // decode image size
        BitmapFactory.Options o = new BitmapFactory.Options();
        o.inJustDecodeBounds = true;
        BitmapFactory.decodeStream(new FileInputStream(f), null, o);

        // Find the correct scale value. It should be the power of 2.
        final int REQUIRED_SIZE = 70;
        int width_tmp = o.outWidth, height_tmp = o.outHeight;
        int scale = 1;
        while (true) {
            if (width_tmp / 2 < REQUIRED_SIZE || height_tmp / 2 < REQUIRED_SIZE)
                break;
            width_tmp /= 2;
            height_tmp /= 2;
            scale++;
        }

        // decode with inSampleSize
        BitmapFactory.Options o2 = new BitmapFactory.Options();
        o2.inSampleSize = scale;
        return BitmapFactory.decodeStream(new FileInputStream(f), null, o2);
    }
    catch (FileNotFoundException e) {
    }
    return null;
}

private void startDialog() {
    AlertDialog.Builder myAlertDialog = new AlertDialog.Builder(this);
    myAlertDialog.setTitle("Upload Pictures Option");
    myAlertDialog.setMessage("How do you want to set your picture?");

    myAlertDialog.setPositiveButton("Gallery", new DialogInterface.OnClickListener() {
        public void onClick(DialogInterface arg0, int arg1) {
            pictureActionIntent = new Intent(Intent.ACTION_GET_CONTENT, null);
            pictureActionIntent.setType("image/*");
            pictureActionIntent.putExtra("return-data", true);
            startActivityForResult(pictureActionIntent, GALLERY_PICTURE);
        }
    });

    myAlertDialog.setNegativeButton("Camera", new DialogInterface.OnClickListener() {
        public void onClick(DialogInterface arg0, int arg1) {
            pictureActionIntent = new Intent(android.provider.MediaStore.ACTION_IMAGE_CAPTURE);
            startActivityForResult(pictureActionIntent, CAMERA_PICTURE);
        }
    });
    myAlertDialog.show();
}
}

Dont forget to add the camera permission in your manifest file.

itsrajesh4uguys
  • 4,610
  • 3
  • 20
  • 31