2012-12-18 58 views

回答

3

您可以設置所需的閃光模式,你在使用setParameters(Camera.Parameters params)Camera對象傳遞的參數的一部分。參考setFlashMode(String)方法,提供FLASH_MODE_ON,FLASH_MODE_OFFFLASH_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); 
+0

但是我懷疑這個方法不適用於所有版本,比如2.2以上的版本,但是會檢查 –

+0

好吧,由於'setFlashMode(String)'從API級別5開始就已經存在,它應該在設備上運行Android 1.6或更新版本(基本上所有設備都在那裏)。不過,我想可能有硬件製造商實施的驅動程序方面的限制 - 但不知道。 –

1

這是比較容易的後,你有一個相機的實例(Camera.open()將返回一個相機實例)。

首先你需要用

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); 
    } 

最後,設置你的新PARAMS到你的相機比如像這樣:

yourCameraInstance.setParameters(params); 

同樣的,你可以檢查其他的拍照功能同樣的時尚:

​​

希望這可以幫助別人!