Question

How I can turn on and turn off camera light on ImageButton.. This is my code

    public void liBtn(View v)
{
    int tur=0;
       if (tur==0)
       {
        Camera.Parameters p = camera.getParameters();
        p.setFlashMode(Camera.Parameters.FLASH_MODE_TORCH);
        camera.setParameters(p);
        camera.startPreview();
        int tur=1;
       }
        if (tur==1)
        {
              Camera.Parameters p = camera.getParameters();
              p.setFlashMode(Camera.Parameters.FLASH_MODE_OFF);
              camera.setParameters(p);
              camera.startPreview();
              int tur=0;
        }
}

Any ideas?

Was it helpful?

Solution

// Create a class member variable
private boolean isOn = false;

// And use it in your method
public void liBtn(View v) {
    Camera.Parameters p = camera.getParameters();

    if (!isOn) {
        p.setFlashMode(Camera.Parameters.FLASH_MODE_TORCH);
    } else {
        p.setFlashMode(Camera.Parameters.FLASH_MODE_OFF);
    }

    camera.setParameters(p);
    camera.startPreview();

    isOn = !isOn;
}

OTHER TIPS

put int tur=0; outside your method.

create a global boolean variable isFlashOn and do some thing like this

 public void liBtn(View v){
  if (!isFlashOn)
   {
    Camera.Parameters p = camera.getParameters();
    p.setFlashMode(Camera.Parameters.FLASH_MODE_TORCH);
    camera.setParameters(p);
    camera.startPreview();
    isFlashOn =true;
   }else{
          Camera.Parameters p = camera.getParameters();
          p.setFlashMode(Camera.Parameters.FLASH_MODE_OFF);
          camera.setParameters(p);
          camera.startPreview();
          isFlashOn =false;
    }
}
Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top