如何在Android中使用相机意图获取图像名称?

Joh*_*ohn 3 android android-camera android-camera-intent

我想用相似的代码显示相机的当前拍摄图像.我可以从相机获取图像并在imageview中显示.我想知道该图像的文件名.

Intent intent = new Intent(android.provider.MediaStore.ACTION_IMAGE_CAPTURE );
startActivityForResult(intent, CAMERA_PIC_REQUEST);

public void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
switch (requestCode)
{
case 2:
{
   if (resultCode == RESULT_OK)
   {
    Bitmap thumbnail = (Bitmap) data.getExtras().get("data");  
   mg_view.setImageBitmap(thumbnail);
  } 
   break;
  }
  }
  }
Run Code Online (Sandbox Code Playgroud)

我怎样才能获得图片名称?请帮助朋友,

谢谢朋友

She*_*tib 7

在您的活动中(被称为YourActivity):

public static int TAKE_IMAGE = 111;
Uri mCapturedImageURI;
Run Code Online (Sandbox Code Playgroud)

某处打电话给相机!

try {
    String fileName = "temp.jpg";
    ContentValues values = new ContentValues();
    values.put(MediaStore.Images.Media.TITLE, fileName);
    mCapturedImageURI = getContentResolver()
            .insert(
                    MediaStore.Images.Media.EXTERNAL_CONTENT_URI,
                    values);
    Intent intent = new Intent(
            MediaStore.ACTION_IMAGE_CAPTURE);
    intent.putExtra(MediaStore.EXTRA_OUTPUT,
            mCapturedImageURI);
    startActivityForResult(intent, TAKE_IMAGE);
} catch (Exception e) {
    Log.e("", "", e);
}
Run Code Online (Sandbox Code Playgroud)

现在在Activity结果中(通知capturedImageFilePath)

protected void onActivityResult(int requestCode, int resultCode,
        Intent intent) {
    if ((requestCode == YourActivity.TAKE_IMAGE)
            && (resultCode == RESULT_OK)) {
        mode = MODE_VIEWER;
        String[] projection = { MediaStore.Images.Media.DATA };
        Cursor cursor = managedQuery(mCapturedImageURI, projection, null,
                null, null);
        int column_index_data = cursor
                .getColumnIndexOrThrow(MediaStore.Images.Media.DATA);
        cursor.moveToFirst();

        //THIS IS WHAT YOU WANT!
        String capturedImageFilePath = cursor.getString(column_index_data);

        bitmap = BitmapFactory.decodeFile(capturedImageFilePath);
    }
}
Run Code Online (Sandbox Code Playgroud)