2

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

4

1 回答 1

2

为此目的使用两个活动有一些优点:

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

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

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

请务必正确关闭相机Framgent.onPause()

于 2012-12-19T14:57:08.303 回答