2012-08-23 31 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请分享代码。谢谢 –