2013-05-21 151 views
0

有没有什么办法从以下ActivityResult方法中获取图像ID?从位图中获取图像ID

@Override 
    protected void onActivityResult(int requestCode, int resultCode, Intent data){ 
     if(requestCode == IMAGE_CAPTURE){ 
      if(resultCode == RESULT_OK){ 
       try{ 
        Bitmap b1 = MediaStore.Images.Media.getBitmap(getContentResolver(),imageUri); 

        System.out.println("GGEGEGGEGEGEGGEGEGEGEG" + imageUri.getPath()); 
//     Intent i2 = new Intent(Intent.ACTION_VIEW, imageUri); 
//     startActivity(i2); 
       } 
       catch(FileNotFoundException e){ 
        System.out.println("OnActivityResult hat einen Fehler geworfen"); 
       } catch (IOException e) { 
        System.out.println("ONACTIVITYRESULT hat einen Fehler geworfen"); 
       } 
      } 
     } 
    } 

我需要它来得到某个图像的缩略图。

编辑:我捕捉到这样的形象:

private void takePic() { 
     ContentValues values = new ContentValues(); 
     String TITLE = null; 
     values.put(MediaColumns.TITLE, TITLE); 
     String DESCRIPTION = null; 
     long id = (Long) null; 
     values.put(ImageColumns.DESCRIPTION, DESCRIPTION); 
     values.put(MediaColumns.MIME_TYPE, "image/jpeg"); 
     values.put(MediaColumns._ID, id); 
     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); 


     System.out.println("VVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVvv" + imageUri.getPath()); 
     startActivityForResult(intent, IMAGE_CAPTURE); 


    } 
+0

你是什么意思与图像ID? –

+0

我需要获取原始图像的ID(上面添加的代码),我可以得到这个缩略图。 – user896692

+0

你看过这个问题和答案:http://stackoverflow.com/questions/12952859/capturing-images-with-mediastore-action-image-capture-intent-in-android –

回答

0

一旦你创建了imageUri,你可以从这样获得的ID:

String[] columns = {MediaColumns._ID}; 
    Cursor cursor = getContentResolver().query(imageUri, columns, null, null, null); 
    cursor.moveToFirst(); 
    long id = cursor.getLong(0); 

注意:你或许应该删除此行来自takePic()中的代码,因为行ID是由内容提供商为您创建的:

values.put(MediaColumns._ID, id); 
+0

java.lang.NullPointerException:试图调用接口方法'布尔android.database.Cursor.moveToFirst() – Ram

+0

@Ram你应该打开一个新的问题与您的问题。用stacktrace发布你的代码和你的logcat。对我的回答发表评论并不适合寻求帮助。 –