android - 如何在拍摄照片后立即在照片上绘图,然后保存到存储空间

标签 android canvas camera draw photo

我四处搜索并找到了几个不同的解决方案来解决这个问题,但没有一个是我真正想要的。

我正在开发一个应用程序,允许用户通过 MediaStore.ACTION_IMAGE_CAPTURE Intent 打开相机来拍摄图像......

Intent intent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);

然后用

保存图片
File photo = new File(Environment.getExternalStorageDirectory(), titleOfPhoto + ".jpg");
intent.putExtra(MediaStore.EXTRA_OUTPUT, Uri.fromFile(photo));

我什至取回缩略图并在 onActivityResult() 覆盖中为用户显示它。

正如标题所暗示的,我想做的是让用户在拍摄后立即在拍摄的图像上绘图。但是我无法控制在打开相机和返回我的应用程序之间发生的事情,并且已经保存了捕获的图像。 SnapChat 和 WhatsApp 之类的应用程序正是这样做的,而且还有更多,所以我知道这是可能的,但 Android 似乎没有内置此功能。

要清楚:事件的顺序需要是<​​/p>

1)打开相机

2)拍照

3)在图片上画画

4) 按“确定”/“完成”或其他按钮

5) 保存修改后的照片

6) 返回缩略图

有没有办法为相机添加一个事件监听器,或者以不同的方式打开相机以提供更多控制?任何帮助表示赞赏!谢谢!

最佳答案

为此,您必须使用 Camera Framwork API .

其基础是在您应用的 Surface View 上渲染相机输出。然后当用户拍照时,捕获surface view的状态。从那里你可以让你的用户在图片上画画。完成后,THEN 保存图片并显示其缩略图。

关于android - 如何在拍摄照片后立即在照片上绘图,然后保存到存储空间,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43057583/

相关文章:

Android 3.0 - 究竟使用 LoaderManager 实例有什么优势?

java - 使用 OpenCV 的 Android 光学字符识别

android - 更改系统时钟时警报管理器停止

java - Android fragment InflateException

javascript - 如何设置带 Angular 文本阴影?

ios - 我如何在 iOS 中获取捕获的图像路径?

iphone - AVFoundation 相机预览屏幕给出错误的缩放

javascript - <canvas/> 并打印屏幕/屏幕截图

android - 颜色选择器不适用于撤消和重做

swift - 使用 iPhone 相机的 macOS App