2013-05-21 54 views
2

在我的应用程序中,我抓住一张照片并将其保存在手机中。保存时从照片中获取ID

这是我该怎么办:

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

+0

没有人,知道一个答案尝试,因为? – user896692

+0

当image成功存储在Content Provider –

+0

中时,您可以通过在'onActivityResult'中为'MediaStore.MediaColumns._ID'查询'MediaStore.Images.Media.DATA'来获得媒体ID。你有任何代码示例如何工作?从来没有用过.. – user896692

回答

2

您可以通过quering MediaStore.Images.Media.DATA对媒体开放的,你必须代替MediaStore内容提供商在这里

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(); 
      } 
     } 
    }