2012-08-23 52 views
1

我在我的應用程序中開發了一個相機,但是當設置閃光燈模式並拍照時,出來的光是短的,並不適用於最終圖片。如何在拍攝照片時開發出像本地相機一樣顯示2級或3級手電筒的閃光燈?代碼我的android相機像本機相機

回答

0

您需要將閃光燈作爲火炬使用。

首先,在AndroidManifest.xml中應用權限,如下所示,

<uses-feature android:name="android.hardware.camera" /> 

<uses-permission 
    android:name="android.permission.FLASHLIGHT" 
    android:permissionGroup="android.permission-group.HARDWARE_CONTROLS" 
    android:protectionLevel="normal" /> 

<uses-feature android:name="android.hardware.camera" /> 
<uses-feature android:name="android.hardware.camera.flash" /> 

現在使用下面的代碼來啓動閃光燈

Camera camera = Camera.open();  
Parameters param = camera.getParameters(); 
param.setFlashMode(Parameters.FLASH_MODE_TORCH); 
camera.setParameters(param); 
camera.startPreview(); 

和下面的代碼是關閉閃光燈光

camera.stopPreview(); 
camera.release(); 
+0

他的問題是當我將閃光模式設置爲火炬時,指示燈亮起並且永不熄滅。在這個pointparam.setFlashMode(Parameters.FLASH_MODE_TORCH);我只是想像本機相機,當你在閃光燈模式下拍照時,它會顯示光線2或3次 – Rafael

+0

是否嘗試了最後兩行來關閉閃光燈? – Lucifer

+0

那麼,當你想要我寫這個代碼? \t參數param = mCamera.getParameters(); \t param.setFlashMode(Parameters.FLASH_MODE_TORCH); \t mCamera.setParameters(param); \t mCamera.takePicture(shutterCallBack,myPictureCallback_RAW,myPictureCallback_JPG); – Rafael

2

我解決了這個問題。當我首先點擊拍照按鈕時,我用param.setFlashMode(Parameters.FLASH_MODE_TORCH)打開手電筒; 1秒鐘後,我設置param.setFlashMode(Parameters.FLASH_MODE_ON);並調用takepicture方法。這樣我就可以模擬原生相機閃光燈

+0

不錯的工作。請幫助我,如果你知道如何設置相機預覽全屏,如供應商相機應用程序提供的相機預覽應用程序。 – Amrendra

+0

@Rafael請分享代碼。謝謝 –