Android 如何在我的应用程序中将图像从camera intent添加到ImageView

Android 如何在我的应用程序中将图像从camera intent添加到ImageView,android,android-intent,Android,Android Intent,我正在尝试在我的应用程序中拍摄图像,然后将该图像返回到imageview。它会获取图像,但不会将图像返回到我的ImageView 以下是我所做的: @Override public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { getActivity().setRequestedOrientation

我正在尝试在我的应用程序中拍摄图像,然后将该图像返回到imageview。它会获取图像,但不会将图像返回到我的ImageView

以下是我所做的:

@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
                         Bundle savedInstanceState) {
    getActivity().setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE);
    View rootView = inflater.inflate(R.layout.fragment_images, container, false);

    imagev = (ImageView) rootView.findViewById(R.id.MyImages);
    imagev.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View view) {

            Intent imageIntent = new Intent(android.provider.MediaStore.ACTION_IMAGE_CAPTURE);
            timeStamp = new SimpleDateFormat("ddMMMyyyy_HH:mm:ss").format(new Date());
            File imagesFolder = new File(Environment.getExternalStorageDirectory(), "My Taken Images");
            imagesFolder.mkdirs();
            image = new File(imagesFolder.getPath(), "Image_" + timeStamp + ".jpg");
            fileUri = Uri.fromFile(image);

            imageIntent.putExtra(MediaStore.EXTRA_OUTPUT, fileUri);
            startActivityForResult(imageIntent, TAKE_PICTURE);
        }
    });
    return rootView;
}

public void onActivityResult(int requestCode, int resultCode, Intent data) {
    if (requestCode == TAKE_PICTURE && resultCode == RESULT_OK) {
            imageview = ThumbnailUtils.extractThumbnail(BitmapFactory.decodeFile(String.valueOf(fileUri), 512, 384);
            ExifInterface exif = null;
            try {
                exif = new ExifInterface(filep);
            } catch (IOException e) {
                e.printStackTrace();
            }
            int orientation = exif.getAttributeInt(ExifInterface.TAG_ORIENTATION, -1);
            if (orientation != -1) {
                switch (orientation) {
                    case ExifInterface.ORIENTATION_ROTATE_90:
                        rotate = 90;
                        break;
                    case ExifInterface.ORIENTATION_ROTATE_180:
                        rotate = 180;
                        break;
                    case ExifInterface.ORIENTATION_ROTATE_270:
                        rotate = 270;
                        break;
                    default:
                        rotate = 0;
                        break;
                }
            }
            Matrix matrix = new Matrix();
            matrix.postRotate(rotate);
            imagev.setImageBitmap(imageview);

        }
    }
}
}
我做错了什么? 请帮忙

谢谢

您这里至少有三个和两个问题

您没有得到结果的原因是您正在向decodeFile传递一个无效的值。解码文件采用路径;您正在传入一个文件:///string。从onCreateView中保留图像,或者在Uri上使用getPath来获取文件的路径

此外:

你经历了很多麻烦来建立一个矩阵,然后再也没有使用过它

在onCreateView中启动活动很奇怪


使用此选项,他实际上不会在onCreateView中启动活动,只是定义了回调,因此非常感谢您的响应。我想我理解,但你能告诉我我需要做什么吗?@forcewill:谢谢你指出这一点;我已经划掉了答案的这一部分。@Wildness:ReplaceString.valueOffileUri和fileUri.getPath。