開啟閃光燈相當簡單,因為閃光燈是 Camera 類別的功能,所以必須先建立 Camera 物件再搭配 Camera.Parameters以控制 Camera 的設定,如下
1: Camera c;
2: Parameters p;
3:
4: @Override
5: public void onCreate(Bundle savedInstanceState) {
6: super.onCreate(savedInstanceState);
7: setContentView(R.layout.activity_main);
8:
9: c = Camera.open();
10:
11: p = c.getParameters();
12: p.setFlashMode(Parameters.FLASH_MODE_TORCH);
13:
14: c.setParameters(p);
15:
16: }
事實上打開閃光燈是靠著第 12 行來達成,之後的關閉閃光燈也是類似的做法
關閉(切換)閃光燈
1: String s = p.getFlashMode();
2: if(s.equals(Parameters.FLASH_MODE_TORCH)){
3: p.setFlashMode(Parameters.FLASH_MODE_OFF);
4: }
5: else if(s.equals(Parameters.FLASH_MODE_OFF)){
6: p.setFlashMode(Parameters.FLASH_MODE_TORCH);
7: }
8:
9: c.setParameters(p);
藉由 setFlashMode 方法來切換閃光燈的開關(第 3 , 6行)
調整閃光燈強度為弱光可以使用
1: p.setFocusMode("macro");//調整為弱光
2:
3: p.setFocusMode("auto");//恢復正常亮度
來切換
測試結果 samsung s2 可以使用, 不過 htc incredible s 卻沒有 macro 可以使用,應該有其它的方法可以控制才對