在onActivityResult方法中获取捕获的图像

时间:2012-12-14 03:31:41

标签: android android-intent android-activity camera android-camera

我在下面的代码中有一点疑问

@Override
        public void onClick(View arg0) {
            // TODO Auto-generated method stub
            Intent i=new Intent(android.provider.MediaStore.ACTION_IMAGE_CAPTURE);

            startActivityForResult(i, 0);
        }

    });
}

@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
    // TODO Auto-generated method stub
    super.onActivityResult(requestCode, resultCode, data);

    if(requestCode==0 && resultCode==RESULT_OK ){

        Bundle extras = data.getExtras();
        //get the cropped bitmap
        Bitmap thePic = extras.getParcelable("data");


        ImageView image =(ImageView) findViewById(R.id.imageView1);
        image.setImageBitmap(thePic);

    }
}

在extras.getParcelable(“data”)中;这里的代码行“data”作为密钥传递给parcelable对象。

我的问题是,是否已经在课程中定义了名为'data'的密钥?或任何理由如何接受。

1 个答案:

答案 0 :(得分:0)

相机应用有责任向Intent中收到的onActivityResult(...)添加缩略图。它基本上以Bitmap作为关键字为意图添加"data"值。因此,可以尝试通过返回的intent中的键获取该值。 Android开发者网站上的Taking Photos Simply tutorial也证明了这一点:

Bundle extras = intent.getExtras();
mImageBitmap = (Bitmap) extras.get("data");

然而,根据经验,我可以告诉并非所有相机应用程序都尊重此行为。我不会依赖数据键实际存在,或者返回的intent nog为null