以编程方式从Camera Folder获取图像

时间:2014-01-13 23:26:33

标签: java android gallery android-camera

民间。

我在这里遇到一个奇怪的问题。我有一个应用程序,您可以通过按钮单击从图库或相机中选择图像。一切顺利,除非我从相机文件夹中选择任何图片,应用程序刚刚崩溃。下面是我的代码

case R.id.camera:

        AlertDialog.Builder builder = new AlertDialog.Builder(Splash.this);

        builder.setTitle("Choose Image Source");
        builder.setItems(new CharSequence[] { "Gallery", "Camera" },
                new DialogInterface.OnClickListener() {

                    public void onClick(DialogInterface dialog, int which) {
                        switch (which) {
                        case 0:

                            Intent intent = new Intent(
                                    Intent.ACTION_GET_CONTENT);
                            intent.setType("image/*");

                            Intent chooser = Intent.createChooser(intent,
                                    "Choose a Picture");
                            startActivityForResult(chooser,
                                    ACTION_REQUEST_GALLERY);

                            break;

                        case 1:

                            Intent cameraIntent = new Intent(
                                    android.provider.MediaStore.ACTION_IMAGE_CAPTURE);
                            String mImageCaptureUri = null;
                            cameraIntent.putExtra(MediaStore.EXTRA_OUTPUT,
                                    mImageCaptureUri);
                            startActivityForResult(cameraIntent,
                                    ACTION_REQUEST_CAMERA);

                            break;

                        }
                    }
                });

        builder.show();

        break;

结果活动:

protected void onActivityResult(int requestCode, int resultCode, Intent data) {
    if (resultCode == RESULT_OK) {

        switch (requestCode) {
        case ACTION_REQUEST_GALLERY:


            Uri selectedImageUri;

            selectedImageUri = data == null ? null : data.getData();

            cap.setImageURI(selectedImageUri);



            break;

        case ACTION_REQUEST_CAMERA:

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

            cap.setImageBitmap(photo);

            // CALL THIS METHOD TO GET THE URI FROM THE BITMAP
            Uri tempUri = getImageUri(getApplicationContext(), photo);

            // CALL THIS METHOD TO GET THE ACTUAL PATH
            File finalFile = new File(getRealPathFromURI(tempUri));

            Toast.makeText(getApplicationContext(),
                    finalFile.getAbsolutePath(), 4000).show();

            break;
        }

    }
}

1 个答案:

答案 0 :(得分:0)

很难说没有logcat,但最可能的原因是图像尺寸较大,用相机拍摄的照片要大而不缩放,这就是你试过的一些图像在相机图像没有的情况下工作的原因。尝试谷歌:缩放大型位图谷歌开发人员,你会发现官方帖子

相关问题