Android - Capture photo

人盡茶涼 提交于 2019-11-26 22:56:18

问题


In my application, i have to implement native camera activity where i have to launch the camera and take photo.

In detail, my application containing, One TextView (at top) to display activity name and one Button (At bottom) and in Middle Area of the screen, Camera preview should be viewed..When user click on that Button, Snaps should be clicked and display it into Imageview of another activity.

I know that the following approach is used:

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

But this approach if i used then my textview and button view is not displayed.

(Pls note that: I am using Android SDK 1.5 with HTC Hero)

pls help me by suggestion of any article, site, or pdf.

thanx, paresh


回答1:


If you are trying to use the native camera, once the native camera is called it will control your view. However if you want to implement your own camera, then such a layout would be possible. Some good examples can be found here:

  • http://www.brighthub.com/mobile/google-android/articles/43414.aspx

  • http://labs.makemachine.net/2010/03/simple-android-photo-capture/

  • http://www.jondev.net/articles/Capturing,_Saving,_and_Displaying_an_Image_in_Android_(1.5,_1.6,_2.0,_2.1,_2.2,_Sense_UI_-_Hero)

Goodluck!




回答2:


All the instructions are at the JavaDoc of android.hardware.Camera at http://developer.android.com/reference/android/hardware/Camera.html:

  1. Obtain an instance of Camera from open().
  2. Get existing (default) settings with getParameters().
  3. If necessary, modify the returned Camera.Parameters object and call setParameters(Camera.Parameters).
  4. If desired, call setDisplayOrientation(int).
  5. Important: Pass a fully initialized SurfaceHolder to setPreviewDisplay(SurfaceHolder). Without a surface, the camera will be unable to start the preview.
  6. Important: Call startPreview() to start updating the preview surface. Preview must be started before you can take a picture.
  7. When you want, call takePicture(Camera.ShutterCallback, Camera.PictureCallback, Camera.PictureCallback, Camera.PictureCallback) to capture a photo. Wait for the callbacks to provide the actual image data.
  8. After taking a picture, preview display will have stopped. To take more photos, call startPreview() again first.
  9. Call stopPreview() to stop updating the preview surface.
  10. Important: Call release() to release the camera for use by other applications. Applications should release the camera immediately in onPause() (and re-open() it in onResume()).

    The SurfaceHolder is ususally implemented using SurfaceView



来源:https://stackoverflow.com/questions/3491961/android-capture-photo

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!