如何在Android中不使用Intent裁剪图像

如何在Android中不使用Intent裁剪图像,android,Android,我正在尝试裁剪一张图片,我使用了下面的代码 Intent i=新Intent(Intent.ACTION\u PICK,android.provider.MediaStore.Images.Media.EXTERNAL\u CONTENT\u URI); i、 putExtra(“裁剪”、“真实”) startActivityForResult(i,1) 但我必须在不使用意图的情况下制作裁剪图像。还必须自定义croping用户界面。 请帮我弄清楚怎么做 我不应该使用newintent(“com.

我正在尝试裁剪一张图片,我使用了下面的代码

Intent i=新Intent(Intent.ACTION\u PICK,android.provider.MediaStore.Images.Media.EXTERNAL\u CONTENT\u URI); i、 putExtra(“裁剪”、“真实”)
startActivityForResult(i,1)

但我必须在不使用意图的情况下制作裁剪图像。还必须自定义croping用户界面。 请帮我弄清楚怎么做

我不应该使用
newintent(“com.android.camera.action.CROP”)
非常感谢

Vikash可用于提取当前位图的子集。

查看以下链接。应该提供一个很好的垫脚石,以加快用户界面的缩放和滚动,最后,一旦你有了你想要的,你可以使用第二个视图作为你的裁剪区域。取决于“查找其他创建位图”选项是否也起作用。


下面是一个示例项目,其工作原理与Android的默认裁剪意图相同。
如果你真的想尝试你所说的,首先看看这个链接,希望它能帮助你找到你的方法。

不知道你的问题,但很高兴知道i.putExtra(“裁剪”,“真实”);您提供的代码链接无效。但是我对CropImage.java类有了一些想法。谢谢,我已经安装了这个项目,但是在安卓摄像头拍摄完照片后,按下ok按钮,它就给力关闭了。我正在研究代码,如果我有任何问题,我会给你回复。Thankstrange.因为在我所有的设备上都可以正常工作这就是为什么我如此自信地告诉你..不管怎样,,,您可以向我发送错误日志,如果可以的话,我会尽力帮助您..在这个过程中,将整个包带到您的项目中,通过传递位图,在CropImage.java中获取位图,并进行必要的替换这是Logcat11-16 14:02:52.155:VERBOSE/camera(349)中的错误:mJpegCallbackFinishTime=6ms 11-16 14:02:56.125:ERROR/AndroidRuntime(340):致命异常:main 11-16 14:02:56.125:ERROR/AndroidRuntime(340):java.lang.RuntimeException:无法恢复活动{com.droid4you.util.cropimage/com.droid4you.util.cropimage.main活动}:java.lang.RuntimeException:无法传递结果结果信息{who=null,request=1,result=-1,data=null}到活动{com.droid4you.util.cropimage/com.droid4you.util.cropimage.MainActivity}:java.lang。NullPointerException@VikashKumar我遇到了同样的问题,并通过更改MainActivity的代码来解决。该问题在SAMSUNG设备上发现,包括2.2和4.1。以下是我的解决方案:将以下代码添加到onCreate函数的末尾:mImageCaptureUri=Uri.parse(“file:///sdcard/temp.jpg"),并删除doTakePhotoAction函数中mImageCaptureUri的初始化代码。此链接用于触摸缩放和滚动行为。我知道,但我假设您将允许您的用户使用某种形式的边界框来选择要裁剪的区域。这就是为什么我提供了该代码以及上面创建所有位图的代码边框/视图中的内容。
 View view = findViewById(R.id.crop_region);
 view.setDrawingCacheEnabled(true);
 view.buildDrawingCache();
 Bitmap cropBitmap = view.getDrawingCache();