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

Posted

技术标签:

【中文标题】在 onActivityResult 方法中获取捕获的图像【英文标题】:Getting captured image in onActivityResult method 【发布时间】:2012-12-02 01:48:03 【问题描述】:

我对下面的代码有点怀疑

@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");此处的代码行“数据”作为 key 传递给 parcelable 对象。

我的问题是,是否已经在类中定义了名称为“数据”的键?或如何接受的任何原因。

【问题讨论】:

【参考方案1】:

相机应用负责将缩略图添加到您在onActivityResult(...) 中收到的Intent。它基本上将Bitmap 值添加到以"data" 作为键的意图。因此,可以尝试从返回的意图中按键获取该值。这也在 Android 开发者网站上的 Taking Photos Simply tutorial 中得到了展示:

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

但是,根据经验,我可以说并非所有相机应用都支持这种行为。我不会依赖实际存在的数据键,或者返回的意图 nog 是 null

【讨论】:

以上是关于在 onActivityResult 方法中获取捕获的图像的主要内容,如果未能解决你的问题,请参考以下文章

解决onActivityResult方法调用两次的问题

如何在 Pixel XL 的 OnActivityResult 中获取图像位图?

再见!onActivityResult!你好,Activity Results API!

片段 onActivityResult 方法执行调用活动 onActivityResult

fragment之间的信息交互——onActivityResult()不经过Activity

Android 在Fragment中执行onActivityResult不被调用的简单解决方法