保存时从照片中获取ID

时间:2013-05-21 17:07:24

标签: android android-intent camera

在我的应用程序中,我抓住了一张照片并将其保存在手机上。

我就是这样做的:

private void takePic() {
    ContentValues values = new ContentValues();
    String TITLE = null;
    values.put(MediaColumns.TITLE, TITLE);
    String DESCRIPTION  = null;
    values.put(ImageColumns.DESCRIPTION, DESCRIPTION);
    values.put(MediaColumns.MIME_TYPE, "image/jpeg");
    imageUri = getContentResolver().insert(MediaStore.Images.Media.EXTERNAL_CONTENT_URI, values);
    Intent intent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);
    intent.putExtra(MediaStore.EXTRA_OUTPUT, imageUri);
    intent.putExtra(MediaStore.EXTRA_VIDEO_QUALITY, 1);

    startActivityForResult(intent, IMAGE_CAPTURE);
}

我现在的问题是,我后来想要获取此图片的缩略图以在我的ListView中显示缩略图。有没有办法获取我拍摄的照片的ID并将其保存到我的Intent或类似的东西?

1 个答案:

答案 0 :(得分:2)

您可以通过在MediaStore内容提供商中为Media Uri查询MediaStore.Images.Media.DATA来尝试此操作

protected void onActivityResult(int requestCode, int resultCode, Intent data) {
        super.onActivityResult(requestCode, resultCode, data);
        if(resultCode==RESULT_OK ){
          if(requestCode == IMAGE_CAPTURE){
                  // get Media Uri from data

                  Uri media_uri = data.getData();
                  String[] column = {MediaStore.Images.Media._ID};

                  Cursor cursor = getContentResolver().query(media_uri, column, 
                                                               null, null, null);
                  cursor.moveToFirst();
                  if(cursor.getCount()>0){
                    int Media_ID = cursor.getInt(cursor  
                             .getColumnIndex(MediaStore.MediaColumns._ID)); 
                    //... store media ID here..
                  }
                 cursor.close();
           }
        }
    }