Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/216.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/powerbi/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 从“多媒体资料”中拾取图像,并将其裁剪为大于500*500的大小_Android - Fatal编程技术网

Android 从“多媒体资料”中拾取图像,并将其裁剪为大于500*500的大小

Android 从“多媒体资料”中拾取图像,并将其裁剪为大于500*500的大小,android,Android,我想从gallery中选择图像,并将其裁剪为800*600大小,但如果大小大于500*500,则无法工作!!我怎么做 我的代码如下: public void showFileChooser() { Intent imageDownload = new Intent(Intent.ACTION_PICK, android.provider.MediaStore.Images.Media.EXTERNAL_CONTENT_URI); imageDownloa

我想从gallery中选择图像,并将其裁剪为800*600大小,但如果大小大于500*500,则无法工作!!我怎么做

我的代码如下:

public void showFileChooser() {
    Intent imageDownload = new Intent(Intent.ACTION_PICK,
            android.provider.MediaStore.Images.Media.EXTERNAL_CONTENT_URI);

    imageDownload.putExtra("crop", "true");
    imageDownload.putExtra("aspectX", 4);
    imageDownload.putExtra("aspectY", 3);
    imageDownload.putExtra("outputX", 800);
    imageDownload.putExtra("outputY", 600);
    imageDownload.putExtra("return-data", true);
    startActivityForResult(imageDownload, 2);
}

 @Override
 protected void onActivityResult(int requestCode, int resultCode, Intent data) {
    super.onActivityResult(requestCode, resultCode, data);
        if (requestCode == 2 && resultCode == RESULT_OK && null != data) {
            Bundle extras = data.getExtras();
                bitmap1 = extras.getParcelable("data");
                imageView1.setImageBitmap(bitmap1);
        }

}

试试这个,它对我有用,希望它也能帮助你

1-从多媒体资料中选择图像

Intent intent = new Intent(Intent.ACTION_PICK,android.provider.MediaStore.Images.Media.EXTERNAL_CONTENT_URI);
            intent.setType("image/*");
            startActivityForResult(Intent.createChooser(intent, "Select File"),Util.REQUEST_GALLERY);
2-在OnActivity中裁剪图像结果如下所示

@Override
public void onActivityResult(int requestCode, int resultCode, Intent data) {
    if (resultCode == getActivity().RESULT_OK) {
        switch (requestCode) {
            case Util.REQUEST_GALLERY:
                try {
                    if (Environment.getExternalStorageState().equals(Environment.MEDIA_MOUNTED) && !Environment.getExternalStorageState().equals(
                            Environment.MEDIA_MOUNTED_READ_ONLY)) {
                        File file = new File(Uri.parse(Environment.getExternalStorageDirectory().getAbsolutePath()
                                + File.separator+ ".MyImages"+ File.separator+ "picture").getPath());
                        if (!file.exists()) {
                            file.mkdirs();
                        }

                        selectedPath1 = File.createTempFile("myImages"+ new SimpleDateFormat("ddMMyyHHmmss",Locale.US).format(new Date()),".jpg", file).toString();
                        croppedImageUri = Uri.fromFile(new File(selectedPath1));

                        Intent intent = new Intent("com.android.camera.action.CROP");
                        intent.setDataAndType(data.getData(), "image/*");
                        intent.putExtra("outputX", 700); // pass width
                        intent.putExtra("outputY", 700); // pass height
                        intent.putExtra("aspectX", 1);
                        intent.putExtra("aspectY", 1);
                        intent.putExtra("scale", true);
                        intent.putExtra("noFaceDetection", true);
                        intent.putExtra("output", croppedImageUri);
                        startActivityForResult(intent, Util.REQUEST_CROP_IMAGE);
                    } else {
                        Toast.show(getActivity(), "Please insert memory card to take pictures and make sure it is writeable");
                    }
                } catch (Exception e) {
                    e.printStackTrace();
                }
                break;

                case Util.REQUEST_CROP_IMAGE:
                     Logg.e(getClass().getSimpleName(), "Profile_Pic ===== " + selectedPath1);
                     imgProfile.setImageURI(Uri.parse("file://" + croppedImageUri));
                break;

                default:
                break;
        }
    }
}

是否要裁剪或调整其大小?