2

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

我就是这样做的:

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或类似的东西?

4

1 回答 1

2

MediaStore.Images.Media.DATA您可以通过查询您在 MediaStore Content Provider 中拥有的 Media Uri来尝试它

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();
           }
        }
    }
于 2013-05-21T17:54:05.300 回答