【问题标题】:How to Crop Images without using Intent in Android如何在 Android 中不使用 Intent 裁剪图像
【发布时间】:2011-12-30 03:30:01
【问题描述】:

我正在尝试裁剪我使用下面代码的图像

意图 i = new Intent(Intent.ACTION_PICK, android.provider.MediaStore.Images.Media.EXTERNAL_CONTENT_URI); i.putExtra("crop", "true");
startActivityForResult(i, 1);

但我必须在不使用 Intent 的情况下裁剪图像。并且还必须自定义裁剪 UI。 请帮我看看怎么做。

我不应该使用new Intent("com.android.camera.action.CROP");
谢谢
维卡什

【问题讨论】:

  • 不知道您的查询,但很高兴知道 i.putExtra("crop", "true");

标签: android


【解决方案1】:

这是一个与 Android 的 Default Crop Intent 相同的示例项目。 CropImage 如果您真的想尝试您所说的,请先查看此链接,希望它可以帮助您找到自己的方式。

【讨论】:

  • 您提供的代码链接无效。但我对 CropImage.java 类有所了解。谢谢
  • 是的,我已经安装了项目,但是在从安卓相机拍照后,然后按确定按钮,它会强制关闭。我正在进入代码,如果我有任何问题,我会回复你。谢谢
  • 奇怪..因为在我所有的设备上都可以正常工作,这就是为什么我如此自信地告诉你..无论如何,你可以给我发送日志猫的错误,如果可以的话,我会尽力提供帮助..将整个包带到您的项目调用 CropImage.java 并传递您的位图并在cropimage.java中获取该位图并替换必要的
  • 这是 Logcat11-16 14:02:52.155 中的错误:VERBOSE/camera(349): mJpegCallbackFinishTime = 6ms 11-16 14:02:56.125: ERROR/AndroidRuntime(340): FATAL EXCEPTION :主要 11-16 14:02:56.125:错误/AndroidRuntime(340):java.lang.RuntimeException:无法恢复活动 {com.droid4you.util.cropimage/com.droid4you.util.cropimage.MainActivity}:java。 lang.RuntimeException:将结果 ResultInfo{who=null, request=1, result=-1, data=null} 传递给活动 {com.droid4you.util.cropimage/com.droid4you.util.cropimage.MainActivity} 失败:java。 lang.NullPointerException
  • @Vikash Kumar 我遇到了同样的问题,并通过更改 MainActivity 的代码解决了它。在 2.2 和 4.1 的 SAMSUNG 设备上发现了该问题。下面是我的解决方案:在onCreate函数的末尾添加如下代码:mImageCaptureUri = Uri.parse("file:///sdcard/temp.jpg"),并删除doTakePhotoAction函数中mImageCaptureUri的初始化代码。
【解决方案2】:

您可以使用createBitmap() 提取当前位图的子集。

【讨论】:

    【解决方案3】:

    看看下面的链接。应该提供一个很好的垫脚石,通过捏缩放和滚动来提升 ui,最后一旦你有了你想要的,你就可以使用第二个视图作为你的裁剪区域。取决于您要查找的内容,否则 createBitmap 选项也可以使用。 http://blog.sephiroth.it/2011/04/04/imageview-zoom-and-scroll/

     View view = findViewById(R.id.crop_region);
     view.setDrawingCacheEnabled(true);
     view.buildDrawingCache();
     Bitmap cropBitmap = view.getDrawingCache();
    

    【讨论】:

    • 此链接用于触摸缩放和滚动行为。
    • 我知道,但我假设您将允许您的用户通过使用某种形式的边界框来选择他们想要裁剪的区域。这就是为什么我提供了这个和上面的代码,它创建了一个边界框架/视图内所有内容的位图。
    猜你喜欢
    • 2017-02-05
    • 2015-02-02
    • 2021-07-24
    • 2011-09-21
    • 1970-01-01
    • 2014-07-25
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多