6

在我的应用程序中,我必须实现本地相机活动,我必须启动相机并拍照。

详细地说,我的应用程序包含一个 TextView(在顶部)显示活动名称和一个按钮(在底部),在屏幕的中间区域,应该查看相机预览。当用户单击该按钮时,应该单击 Snaps并将其显示到另一个活动的 Imageview 中。

我知道使用了以下方法:

Intent intent = new Intent(android.provider.MediaStore.ACTION_IMAGE_CAPTURE );
intent.putExtra( MediaStore.EXTRA_OUTPUT, outputFileUri );
startActivityForResult( intent, 0 );

但是如果我使用这种方法,那么我的文本视图和按钮视图不会显示。

(请注意:我正在使用带有 HTC Hero 的 Android SDK 1.5)

请通过任何文章、网站或 pdf 的建议帮助我。

谢谢,帕雷什

4

2 回答 2

9

如果您尝试使用本机相机,一旦调用本机相机,它将控制您的视图。但是,如果您想实现自己的相机,那么这样的布局是可能的。可以在这里找到一些很好的例子:

祝你好运!

于 2010-08-16T16:13:58.950 回答
4

所有说明都在http://developer.android.com/reference/android/hardware/Camera.html的 android.hardware.Camera 的 JavaDoc 中:

  1. 从 open() 获取 Camera 的实例。
  2. 使用 getParameters() 获取现有(默认)设置。
  3. 如有必要,修改返回的 Camera.Parameters 对象并调用 setParameters(Camera.Parameters)。
  4. 如果需要,请调用 setDisplayOrientation(int)。
  5. 重要提示:将完全初始化的 SurfaceHolder 传递给 setPreviewDisplay(SurfaceHolder)。没有表面,相机将无法开始预览。
  6. 重要提示:调用 startPreview() 开始更新预览图面。必须先开始预览,然后才能拍照。
  7. 如果需要,请调用 takePicture(Camera.ShutterCallback, Camera.PictureCallback, Camera.PictureCallback, Camera.PictureCallback) 来拍摄照片。等待回调提供实际的图像数据。
  8. 拍照后,预览显示将停止。要拍摄更多照片,请先再次调用 startPreview()。
  9. 调用 stopPreview() 以停止更新预览图面。
  10. 重要提示:调用 release() 以释放相机以供其他应用程序使用。应用程序应立即在 onPause() 中释放相机(并在 onResume() 中重新打开()它)。

    SurfaceHolder 通常使用SurfaceView实现

于 2010-08-16T09:36:53.010 回答