3

我越来越从这个描述有点混乱:使用ACTION_IMAGE_CAPTURE时返回什么数据?

调用者可以通过一个额外的EXTRA_OUTPUT为了控制这一形象 将被写入。如果EXTRA_OUTPUT不存在,则在额外字段中将返回一个尺寸较小的图像作为位图对象。这是 对于只需要小图像的应用程序很有用。如果存在 EXTRA_OUTPUT,则全尺寸图像将被写入 EXTRA_OUTPUT的Uri值。

有没有EXTRA_OUTPUT,它会返回一个“小尺寸图像”?

随着EXTRA_OUTPUT,它会返回一个完整大小的图像?

“返回作为额外的字段Bitmap对象” ......

在我onActivityResult,我只是用Intent data作为实际数据。我应该使用data.getExtra什么的?

+0

+1因为这个定义也从未真正清楚,我要么。但是,我不使用extra_output行,并且仅使用像素数据后使用了内容解析器。 – 2013-07-21 02:15:33

+0

你可以扩展这个吗?我也只会喜欢像素数据。 – EGHDK

+0

很高兴,我对此做了扩充,作为回答 – 2013-07-22 08:59:32

回答

3

在这种情况下,你提供了一个开放的:

Intent action = new Intent(android.provider.MediaStore.ACTION_IMAGE_CAPTURE); 
action.putExtra(android.provider.MediaStore.EXTRA_OUTPUT, myUri); 
startActivityForResult(action, CAMERA_RESULT); 

,然后你用(后requestCode和resultCode为测试)检索:

Bitmap bitmap = BitmapFactory.decodeFile(myUri, options); 

在另一种情况:

Intent intent = new Intent(android.provider.MediaStore.ACTION_IMAGE_CAPTURE); 
startActivityForResult(intent, CAMERA_RESULT); 

和您的检索:

Bundle bundle = intent.getExtras(); 
Bitmap bitmap = (Bitmap) extras.get("data"); 
2

这里是我的评论的扩展。下面这段代码在给我的像素数据行之有效我 - 让灰度数据和ImageView的是in my post here

@Override 
     public void onClick(View v) { 



      Intent intent = new Intent(android.provider.MediaStore.ACTION_IMAGE_CAPTURE); 

      startActivityForResult(Intent.createChooser(intent, "Select Picture"), CAPTURE_IMAGE_ACTIVITY_REQUEST_CODE); 

      } 

    }); 

} 

@Override 
protected void onActivityResult(int requestCode, int resultCode, Intent data) { 
    //super.onActivityResult(requestCode, resultCode, data); 
     if(requestCode == CAPTURE_IMAGE_ACTIVITY_REQUEST_CODE && resultCode == RESULT_OK) { 
      final ContentResolver cr = getContentResolver(); 
        final String[] p1 = new String[] { 
          MediaStore.Images.ImageColumns._ID, 
          MediaStore.Images.ImageColumns.DATE_TAKEN 
        }; 
        Cursor c1 = cr.query(MediaStore.Images.Media.EXTERNAL_CONTENT_URI, p1, null, null, p1[1] + " DESC"); 
        if (c1.moveToFirst()) { 
         String uristringpic = "content://media/external/images/media/" +c1.getInt(0); 
         Uri uri = Uri.parse(uristringpic); 
         try { 
          Bitmap bm = android.provider.MediaStore.Images.Media.getBitmap(cr, uri); 

希望这有助于

+0

谢谢。这确实有帮助! – EGHDK

+0

@EGHDK非常欢迎。我很高兴听到这个消息,这是获取我找到的像素数据的一个好方法。 – 2013-07-22 22:18:29

+0

@EGHDK你需要任何额外的帮助吗? – 2013-07-23 21:53:10

相关问题