Android:是不是可以在启动它的同一活动中使用从相机拍摄的照片?

Posted

技术标签:

【中文标题】Android:是不是可以在启动它的同一活动中使用从相机拍摄的照片?【英文标题】:Android: Is it possible to use photo taken from camera in same activity it was initiated from?Android:是否可以在启动它的同一活动中使用从相机拍摄的照片? 【发布时间】:2012-12-05 18:40:36 【问题描述】:

我目前有一个 Activity,它在其布局中添加一个相机预览(它扩展了 SurfaceView),然后使用它从用户那里获取一张照片。然后我将那张照片传递给一个新的活动。我想知道是否可以只拍照然后在同一个活动中将其打开?我想我会删除相机预览然后弹出一个新视图并将拍摄的照片添加到其中?不确定这是否是要走的路。我只是觉得我需要通过将照片保存到 SD 卡等来将照片传递给下一个活动,这很烦人。

【问题讨论】:

【参考方案1】:

为此目的使用两个活动有一些好处:

返回按钮允许用户在不满意时再次拍照。点击后退可能是他们做的第一件事,他们不希望后退两个逻辑步骤。我认为从设计的角度来看,这非常重要,您可以在使用两个活动时免费获得它。 自动删除查看图片时不需要的所有相机控件 您可以在 XML 中而不是在代码中声明所有 UI

但是,您可以使用两个片段而不是活动,以获得以上奖励并避免将图像保存到文件中。一个片段用于相机预览。另一个用于显示图片。

onPictureTaken()回调中,使用decodeByteArray(data, 0, data.length)获取Bitmap。将其传递给“相机”片段。创建一个FragmentTransaction,其中隐藏“相机”片段并显示“显示”片段。将事务添加到 BackStack 并提交。

请务必正确关闭Framgent.onPause()中的摄像头。

【讨论】:

以上是关于Android:是不是可以在启动它的同一活动中使用从相机拍摄的照片?的主要内容,如果未能解决你的问题,请参考以下文章

使用带有视图而不是活动的 Android 选项卡的示例?

Android Activity 错误地重新设置为应用程序任务

重新创建的活动是不是记得启动它的原始意图?

设备重新启动后,地理围栏是不是在 android 中保持活动状态

Android:如果同一活动中有多个 ListView,为啥我看不到 ListView?

Android singleTask 还是 singleInstance 启动模式? [关闭]