6

내 응용 프로그램에서는 카메라를 시작하고 사진을 찍어야하는 기본 카메라 활동을 구현해야합니다.Android - Capture photo

내 응용 프로그램 활동 이름을 표시하는 하나의 TextView (맨 위)와 화면의 가운데 영역에 하나의 버튼 (카메라 미리보기)이 표시되어야합니다. 사용자가 해당 버튼을 클릭 할 때 스냅을 클릭하여 다른 활동의 Imageview에 표시해야합니다.

나는 다음과 같은 방법을 사용하는 것을 알고 :

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

하지만 내가 사용하는 경우이 방법은 다음 내 텍스트 뷰와 버튼 뷰가 표시되지 않습니다.

은 (Pls는 점에 유의 : 나는 HTC 영웅과 안드로이드 SDK 1.5을 사용하고 있습니다)

PLS는 기사, 사이트 또는 PDF의 제안에 의해 나에게 도움이됩니다.

고맙습니다, paresh

답변

9

를 사용하여 구현됩니다. 그러나 자신 만의 카메라를 구현하고 싶다면 그러한 레이아웃이 가능할 것입니다.좋은 예는 여기에서 찾을 수 있습니다 :

goodluck는을!

+0

그걸보고 ... 마침내 내가 제 2의 링크 방식으로 카메라 응용 프로그램을 구현해야만합니다. –

+0

고맙습니다 대답은 고맙습니다. 그러나 IMAGE_CAPTURE 의도로 캡처 할 수있는 최대 크기는 무엇인지 알려주십시오. –

+0

전체 크기로 가져올 수는 있지만 그렇지 않을 수도 있습니다. 나는 같은 문제에 부딪 쳤고, 그들이 추측해야하는 것보다 작은 이미지로 사진을 다시 가져 왔습니다. 이론적으로 당신은 의도에 명시된 경로를 통해 비트 맵을 얻을 수 있어야합니다. 그러나 다음을 통해 더 큰 버전을 검색 할 수있었습니다 : \t \t \t \t Uri pic = Uri.parse (data.toURI()); \t \t \t \t 비트 맵 bm = Media.getBitmap (getContentResolver(), pic)); onActivityResult 메서드에서 희망이 도움이됩니다. – ninjasense

4

모든 지침 http://developer.android.com/reference/android/hardware/Camera.html에서 android.hardware.Camera의 JavaDoc을에 있습니다 :

  1. 오픈에서 카메라의 인스턴스를 취득합니다().
  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에이 ususally 기본 카메라는 뷰를 제어 할라고하면 당신은 기본 카메라를 사용하려는 경우 SurfaceView

+0

답장을위한 thanx는 이미이 기사를 읽었지만 어떻게 구현해야하는지 모르겠다. –

관련 문제