Android - 拍摄照片

时间:2010-08-16 09:29:34

标签: android android-camera android-camera-intent android-capture

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

详细说明, 我的应用程序包含,One TextView(在顶部)显示活动名称和一个按钮(在底部)和屏幕的中间区域,应该查看相机预览..当用户单击该按钮时,应单击快照并显示它进入另一项活动的Imageview。

我知道使用了以下方法:

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

但如果我使用这种方法,则不会显示我的textview和按钮视图。

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

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

thanx,paresh

2 个答案:

答案 0 :(得分:9)

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

古德勒克!

答案 1 :(得分: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

  11. 实现