Crop Intent在Android中无法正常工作

时间:2016-02-05 16:22:00

标签: android image android-intent

这是我从画廊中选择图片和裁剪的意图代码。

private readonly T _id;
public T Id { get { return _id; } }
protected Entity(T id) { _id = id; }

这是我的onActivityResult

 int PICK_IMAGE_REQUEST = 100;
                    Intent intent = new Intent();
                    intent.setType("image/*");
                    intent.setAction(Intent.ACTION_PICK);
                    intent.putExtra(MediaStore.EXTRA_OUTPUT,
                            MediaStore.Images.Media.EXTERNAL_CONTENT_URI.toString());
                    intent.putExtra("crop", "true");
                    intent.putExtra("aspectX", 150);
                    intent.putExtra("aspectY", 150);
                    intent.putExtra("outputX", 150);
                    intent.putExtra("outputY", 150);
                    intent.putExtra("return-data", true);
                    getActivity().startActivityForResult(Intent.createChooser(intent,
                            "Complete using with."), PICK_IMAGE_REQUEST);

以上代码裁剪并成功设置了图片。但是,有时它无法正常工作。我的意思是当我使用第三方图库应用程序而不是使用设备的默认图库应用程序时。它不会设置图像。使用其他图库应用时,这可能无法正确获取文件路径。那么,我如何实现select& crop并将图像设置为imageview?我研究过互联网但到目前为止还没有解决这个问题。

1 个答案:

答案 0 :(得分:1)

  

这是我从画廊中选择图片和裁剪的意图代码。

不,这是选择图片的代码。您所拥有的各种附加内容不属于the ACTION_PICK documentation或其他任何官方文档的一部分。

  

以上代码裁剪并成功设置图片

不一般。

  

但是,有时它无法正常工作。我的意思是当我使用第三方图库应用程序而不是使用设备的默认图库应用程序时。

有数以千计的Android设备型号。所有这些都没有单一的“默认图库应用”;将有数十个(如果不是数百个)“默认图库应用”实现。没有人必须支持你正在尝试的随机附加功能。此外,没有必要在data额外内容中返回一些内容,因为ACTION_PICK会在结果Uri中返回Intent,如the documentation for ACTION_PICK所述。

  

那么,我如何实现select& crop并将图像设置为imageview?

摆脱额外的东西。摆脱extras.getParcelable("data")位。获取所选图片的Uridata.getData())。将其与适用于Android的各种image cropping libraries中的一种结合使用。