带定时器的手电筒应用

时间:2017-05-13 05:47:03

标签: android

if(!isOn) {

              imageButton.setImageResource(R.drawable.on);
              parameters.setFlashMode(Camera.Parameters.FLASH_MODE_TORCH);

              camera.setParameters(parameters);

              camera.startPreview();

              isOn = true;
              getWindow().addFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON);

 }                    

我想在手电筒应用程序中添加一个计时器,以便在所选时间内保持手电筒开启

3 个答案:

答案 0 :(得分:1)

这是适用于我的代码。

public void NotifyWithFlash(Context context){

    boolean ShouldIGlow = true;

    while(ShouldIGlow){
      flashON();
      try {
         Thread.sleep(10000);
      } catch (InterruptedException e) {
        // TODO Auto-generated catch block
         e.printStackTrace();
      }finally{
         ShouldIGlow = false;
         flashOFF();
     }
  }
}


 public void flashON(){
   Camera cam = Camera.open();     
   Parameters p = cam.getParameters();
   p.setFlashMode(Parameters.FLASH_MODE_TORCH);
   cam.setParameters(p);
   cam.startPreview();

 }

 public void flashOFF(){
  cam.stopPreview();
  cam.release(); 
 }

答案 1 :(得分:0)

我想在手电筒应用程序中添加一个计时器,以便在所选时间内保持手电筒开启,所以只需使用线程设置计时器for _ in range(1000): batch_xs=???? batch_ys=???? sess.run(train_step, feed_dict={x: batch_xs, y_: batch_ys}) ,例如Thread.sleep(user decided period);

答案 2 :(得分:0)

您不应该使用Thread.sleep(),因为它会阻止用户界面。相反,你有android.os.Handler

flashOn();
new Handler().postDelayed(new Runnable() {
    @Override
    public void run() {
        flashOff();
    }
}, 5000); // 5000 ms = 5 sec