6

在我的應用程序中,我必須實現本機相機活動,我必須啓動相機並拍照。Android - 捕獲照片

詳細地說, 我的應用程序包含一個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的建議。

感謝名單,帕雷什

回答

9

如果你要使用本機攝像頭,一旦原生相機被稱爲它就會控制你的視圖實現。但是,如果你想實現自己的相機,那麼這樣的佈局是可能的。一些很好的例子可以在這裏找到:

古德勒克!

+0

看起來......終於我必須以第二個鏈接的方式實現Camera應用程序 – 2010-08-17 05:04:55

+0

thanx以獲得有價值的答案..但讓我知道IMAGE_CAPTURE意圖可能捕獲的最大尺寸是多少? – 2010-08-17 05:05:28

+0

你可以得到他們全尺寸,但你可能不會。我遇到了同樣的問題,以比我猜想的更小的圖像重新拍攝照片。理論上你應該能夠通過你在意圖上指定的路徑獲得位圖。不過,我可以通過以下方式檢索較大版本: \t \t \t \t Uri pic = Uri.parse(data.toURI()); \t \t \t \t位圖bm = Media.getBitmap(getContentResolver(),pic); onActivityResult方法中的 。希望這可以幫助。 – ninjasense 2010-08-17 05:52:23

4

所有指令都是在android.hardware.Camera的JavaDoc的在http://developer.android.com/reference/android/hardware/Camera.html

  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. 重要提示:呼叫釋放()釋放相機以供其他應用程序使用。應用程序應立即在onPause()中釋放相機(並在onResume()中重新打開它())。

    的SurfaceHolder是後容易使用SurfaceView

+0

thanx的答案..我已經讀過這篇文章,但不知道如何實現它。 – 2010-08-16 10:09:44