開啟手機閃光燈(手電筒)(Camera & Camera.Parameters)


開啟閃光燈相當簡單,因為閃光燈是 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 可以使用,應該有其它的方法可以控制才對










Twitter Delicious Facebook Digg Stumbleupon Favorites More

 
Design by Free WordPress Themes | Bloggerized by Lasantha - Premium Blogger Themes | Affiliate Network Reviews