-1

我有一个我一直在开发的 Android 应用程序,我一直在使用内置的裁剪图像意图(使用图库)来裁剪图片。我需要允许用户将图像裁剪为正方形 (1:1),然后我将稍后处理图像。这是我的问题:出于某种原因,我完全无法理解应用程序强制关闭并返回 NullPointerException ......有时。尝试从新创建的(裁剪的)图像中检索 URI 时会发生这种情况。它发生在如此随机的时间,它开始让我怀疑它是否只是一个 OME 以一种奇怪的方式表现出来。无论如何,我完全迷失了,并且已经问过这个问题而没有真正的答案(除了 NullPointerException 是什么),这没有帮助。我在这里发布了我的问题:链接到以前提出的问题

如果您能回答任何很棒的建议,否则我将放弃标准的 Gallery Crop 并编写自己的裁剪方法。我对编程相当陌生,所以如果你们能提出任何“自定义裁剪活动”的示例或代码片段,那将是非常棒的。

PS。我正在寻找一种类似于 Instagram 裁剪方法的方法。您认为这是像我这样的新手可以做的事情吗?还是需要很多专业知识?

4

2 回答 2

1

这将打开选择窗口,询问您需要从哪种图库中获取图像(将向您显示可用的选项和应用程序),一旦您选择一个,它将向您显示裁剪屏幕。

我希望它有帮助!...

Intent intent = new Intent(Intent.ACTION_GET_CONTENT, null);

Uri imageUri = Uri.fromFile(new File(Environment.getExternalStorageDirectory().getAbsolutePath() + "/yourTempDirectory/"));
intent.setData(imageUri);
intent.setType("image/*.");
intent.putExtra("crop", "true");
intent.putExtra("aspectX", 1);
intent.putExtra("aspectY", 1);
intent.putExtra("outputX", 200); 
intent.putExtra("outputY", 200);
intent.putExtra("scale", true);
intent.putExtra("return-data", true);

try {       
    startActivityForResult(intent, GALLERY_CAPTURE);
}catch (ActivityNotFoundException e) {
    Log.e("ERROR!!!! :  ",""+e);
}

重要的!你必须声明

final int GALLERY_CAPTURE = 1;

如果您需要任何帮助,请告诉我。

于 2013-01-24T09:37:42.517 回答
0

有一个运行良好的开源 Android 库,它叫做CropImage,试试看。

于 2014-05-09T12:44:40.707 回答