无法从相机android上传图像捕获

时间:2015-09-30 05:52:44

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

我正在尝试编写一个小代码,允许我从相机中取出后直接发送图片,我想从相机捕获中发送图片但从未成功,我总是得到消息& #34;出了点问题" 有代码

public void loadImagefromGallery(View view) {
        CharSequence colors[] = new CharSequence[] {"Galery", "Foto"};
            AlertDialog.Builder builder = new AlertDialog.Builder(UserProfileActivity.this);
            builder.setTitle("Pilih");
            builder.setItems(colors, new DialogInterface.OnClickListener() {
                @Override
                public void onClick(DialogInterface dialog, int which) {
                    if (which == 0) {
                        Intent galleryIntent = new Intent(Intent.ACTION_PICK,
                                android.provider.MediaStore.Images.Media.EXTERNAL_CONTENT_URI);
                        startActivityForResult(galleryIntent, RESULT_LOAD_IMG);

                    } else if (which == 1) {
                        Intent intent = new Intent("android.media.action.IMAGE_CAPTURE");
                        //intent.putExtra(MediaStore.EXTRA_OUTPUT, fileUri);
                        startActivityForResult(intent, CAMERA_REQUEST);
                    }
                }
            });
        builder.show();
    }

    @Override
    protected void onActivityResult(int requestCode, int resultCode, Intent data) {
        super.onActivityResult(requestCode, resultCode, data);
        try {
            if(requestCode == CAMERA_REQUEST){
                Bitmap photo = (Bitmap) data.getExtras().get("data");
                RoundedImageViewUtil imgView = (RoundedImageViewUtil) findViewById(R.id.profile);
                imgView.setImageBitmap(photo);

                Uri selectedImage = data.getData();
                String[] filePathColumn = { MediaStore.Images.Media.DATA };

                Cursor cursor = getContentResolver().query(selectedImage,
                        filePathColumn, null, null, null);
                cursor.moveToFirst();

                int columnIndex = cursor.getColumnIndex(filePathColumn[0]);
                imgPath = cursor.getString(columnIndex);
                cursor.close();

                imgView.setImageBitmap(BitmapFactory
                        .decodeFile(imgPath));
                String fileNameSegments[] = imgPath.split("/");
                fileName = fileNameSegments[fileNameSegments.length - 1];
                params.put("filename", fileName);

            } else if (requestCode == RESULT_LOAD_IMG && resultCode == RESULT_OK
                    && null != data) {

                Uri selectedImage = data.getData();
                String[] filePathColumn = { MediaStore.Images.Media.DATA };

                Cursor cursor = getContentResolver().query(selectedImage,
                        filePathColumn, null, null, null);
                cursor.moveToFirst();

                int columnIndex = cursor.getColumnIndex(filePathColumn[0]);
                imgPath = cursor.getString(columnIndex);
                cursor.close();
                RoundedImageViewUtil imgView = (RoundedImageViewUtil) findViewById(R.id.profile);
                imgView.setImageBitmap(BitmapFactory
                        .decodeFile(imgPath));
                String fileNameSegments[] = imgPath.split("/");
                fileName = fileNameSegments[fileNameSegments.length - 1];
                params.put("filename", fileName);

            } else {
                Toast.makeText(this, "You haven't picked Image",
                        Toast.LENGTH_LONG).show();
            }
        } catch (Exception e) {
            Toast.makeText(this, "Something went wrong", Toast.LENGTH_LONG)
                    .show();
        }

    }

1 个答案:

答案 0 :(得分:0)

的Intead
Bitmap photo = (Bitmap) data.getExtras().get("data");

Uri imageUri = (Uri)data.getData();

然后从uri获取您的图像位图。