2013-05-21 149 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。對我的回答發表評論並不適合尋求幫助。 –