在片段中从相机拍摄照片 [英] Take photo from camera in fragment

查看:31
本文介绍了在片段中从相机拍摄照片的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

在我的 Fragment 中,我尝试从我的相机拍照,但是我的 FragmentonActivityResult 没有被调用.拍照后,这个 Fragment 没有显示,正在切换到我的第一个 Fragment.有没有其他方法可以在 Fragment 中捕获照片,或者我做错了什么?

In my Fragment I try to take picture from my camera but the onActivityResult of my Fragment is not called. After taking photo this Fragment is not showing and is switching to my first Fragment. In there any other way for capturing photos in a Fragment, or what am I doing wrong?

这是我当前的代码:

public void takePhoto() {
        Intent intent = new Intent("android.media.action.IMAGE_CAPTURE");
        File photo = new File(Environment.getExternalStorageDirectory(),  "Pic.jpg");
        intent.putExtra(MediaStore.EXTRA_OUTPUT,
                Uri.fromFile(photo));
        imageUri = Uri.fromFile(photo);
        PhotosListFragment.this.startActivityForResult(intent, 100);
    }

    @Override
    public void onActivityResult(int requestCode, int resultCode, Intent data) {
        super.onActivityResult(requestCode, resultCode, data);
        switch (requestCode) {
        case 100:
            if (resultCode == Activity.RESULT_OK) {
                Uri selectedImage = imageUri;
                getActivity().getContentResolver().notifyChange(selectedImage, null);
                ContentResolver cr = getActivity().getContentResolver();
                Bitmap bitmap;
                try {
                     bitmap = android.provider.MediaStore.Images.Media
                     .getBitmap(cr, selectedImage);

                    viewHolder.imageView.setImageBitmap(bitmap);
                    Toast.makeText(getActivity(), selectedImage.toString(),
                            Toast.LENGTH_LONG).show();
                } catch (Exception e) {
                    Toast.makeText(getActivity(), "Failed to load", Toast.LENGTH_SHORT)
                            .show();
                    Log.e("Camera", e.toString());
                }
            }
        }
    }

推荐答案

我试过你的代码,它运行良好,伙计.我改变了

I tried your code its working fine dude. I changed

PhotosListFragment.this.startActivityForResult(intent, 100);

getActivity().startActivityForResult(intent, 100);

拍照后,返回相同的活动.

which after taking the picture, returning back to same activity.

我认为你的两个片段都在同一个活动中.

I think both of your fragments are on same activity.

如果是这种情况,我建议您创建一个新活动并将新片段放在那里.

if that is the situation, I suggest you to create a new activity and put the new fragment in there.

这篇关于在片段中从相机拍摄照片的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆