我有一个Android应用程序,我一直在努力,我一直在使用内置的裁剪图像意图(使用图库)来裁剪图片。我需要允许用户将图像裁剪为正方形(1:1)然后我将操作图像。这是我的问题:由于某种原因完全出于我的理解,应用程序强制关闭并返回NullPointerException ...有时候。尝试从新创建的(裁剪的)图像中检索URI时会发生这种情况。它发生在这样的随机时间,它开始让我想知道它只是一个OME以一种奇怪的方式表现出来。无论如何,我完全失去了,已经问过这个问题没有真正的答案(除了NullPointerException之外),这没有帮助。我在这里发布了我的问题:Link to previously asked question
如果您能回答任何可能很棒的建议,否则我会放弃标准的Gallery Crop并开始编写我自己的裁剪方法。我对编程很新,所以如果你们可以建议任何一个“自定义作物活动”的例子或代码片段,那将是非常棒的。
PS。我正在寻找一种类似于Instagrams crop方法的方法。你认为这是像我这样的新手吗?还是需要很多专业知识?
答案 0 :(得分: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;
如果您需要帮助,请告诉我。
答案 1 :(得分:0)
有一个开源Android库,效果很好,它被称为CropImage,试一试。