【问题标题】:Is it possible to crop an image captured from the Camera on Android without returning to the app?是否可以在不返回应用程序的情况下裁剪从 Android 上的相机拍摄的图像?
【发布时间】:2016-03-19 20:06:10
【问题描述】:

目标是允许用户在 Android 设备上使用相机拍摄新图像。我需要最终的图像是一个正方形。如果不使用 Camera 类并做更多的工作,我看不到一种方法来限制捕获图像的大小。

我希望能够使用MediaStore.ACTION_IMAGE_CAPTURE Intent 操作启动相机活动,并在捕获图像后立即执行裁剪操作。从相机返回时,我可以通过在onActivityResult 中使用"com.android.camera.action.CROP" 操作来获得所需的行为,但这会在开始裁剪操作之前将用户返回到我的应用程序。

总而言之,我现在拥有的是:

My-app -> Camera -> My-app -> Crop

理想情况下我想要的是:

My-app -> Camera -> Crop -> My-app

(如果可以在打开相机时告诉图像捕获意图使用特定尺寸,如果我只是错过了如何做到这一点,那就太好了。)

提前致谢。

【问题讨论】:

    标签: android image android-intent camera


    【解决方案1】:

    从相机返回时,我可以通过在 onActivityResult 中使用“com.android.camera.action.CROP”操作来获得所需的行为,但这会在开始裁剪操作之前将用户返回到我的应用程序。

    Android does not have a CROP Intent。很少有设备具有支持您未记录的Intent 操作的活动。

    理想情况下,我想要的是:我的应用程序 -> 相机 -> 裁剪 -> 我的应用程序

    欢迎您使用相机 API 和 an image-cropping library 自己完成所有这些工作。

    或者,欢迎您继续使用ACTION_IMAGE_CAPTURE,但请自己进行图像裁剪。

    或者,欢迎您坚持使用现有代码,但请记住,您的图像不会在大多数 Android 设备上被裁剪。

    【讨论】:

    • 感谢您的快速回复。
    • 是不是很多安卓设备都没有CROP Intent? .....库是实现@CommonsWare 的唯一方法
    • @KoVartthan:Intent 的操作未记录在案。任何设备都不需要有响应它的活动。您应该假设数以亿计的 Android 设备没有这样的活动。 “图书馆是实现这一点的唯一方法”——你不能提供裁剪。或者,您可以在具有此类活动的设备上提供裁剪,但是您的许多用户会想知道为什么您的应用程序在他们的设备上无法正常运行。使用库并不难。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2013-07-30
    • 1970-01-01
    • 2010-12-21
    • 2020-11-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多