在这个链接http://store.ovi.com/content/147853?clickSource=search&pos=1上有一个自定义的相机实现在 android我想知道我们如何在捕获图像时打开闪光灯,我们会这样做吗我们自己 ?或在示例中设置相机模式的任何api?
请帮忙 !
谢谢
在这个链接http://store.ovi.com/content/147853?clickSource=search&pos=1上有一个自定义的相机实现在 android我想知道我们如何在捕获图像时打开闪光灯,我们会这样做吗我们自己 ?或在示例中设置相机模式的任何api?
请帮忙 !
谢谢
您可以使用 将所需的闪光模式设置为您在Camera
对象中传递的参数的一部分setParameters(Camera.Parameters params)
。请参阅参数上的方法,setFlashMode(String)
提供或。FLASH_MODE_ON
FLASH_MODE_OFF
FLASH_MODE_AUTO
Camera camera = Camera.open();
Camera.Parameters params = new Camera.Parameters();
params.setFlashMode(Camera.Parameters.FLASH_MODE_ON);
// ... set other parameters
camera.setParameters(params);
在您拥有一个 Camera 实例之后,这相对容易(Camera.open() 将返回一个 Camera 实例)。
首先,您需要获取相机参数
Camera.Parameters params = yourCameraInstance.getParameters();
接下来,您需要检查正在使用的设备是否能够实现您希望实现的闪存模式,以防万一您试图告诉设备打开闪存而它却不能。这会导致崩溃。
List<String> flashModes = params.getSupportedFlashModes();
这将返回设备能够以字符串形式支持的所有闪存模式的列表。例如,该列表应包含以下内容:FLASH_MODE_AUTO、FLASH_MODE_ON、FLASH_MODE_OFF 等。
然后执行以下操作:
if (flashModes.contains(Camera.Parameters.FLASH_MODE_AUTO)) {
params.setFlashMode(Camera.Parameters.FLASH_MODE_AUTO);
}
最后,将您的新参数设置为您的相机实例,如下所示:
yourCameraInstance.setParameters(params);
同样,您可以以相同的方式检查其他相机功能:
List<String> focusModes = params.getSupportedFocusModes();
if (focusModes.contains(Camera.Parameters.FOCUS_MODE_AUTO)) {
params.setFocusMode(Camera.Parameters.FOCUS_MODE_AUTO);
}
yourCameraInstance.setParameters(params);
希望这对某人有帮助!