So I’m trying to have a button where users can choose between flash on/off/auto. This button is within my camera preview activity, but I’m not sure how to check certain parameters with one button.
//Flash Button
final Button flashButton = (Button) findViewById(id.camera_flash);
flashButton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
if(mCamera != null){
Parameters p = mCamera.getParameters();
p.setFlashMode(Parameters.FLASH_MODE_AUTO);
mCamera.setParameters(p);
mCamera.startPreview();
flashButton.setText("AUTO");
Log.e("Torch","Torch On");
}else{
Parameters p = mCamera.getParameters();
p.setFlashMode(Parameters.FLASH_MODE_OFF);
mCamera.setParameters(p);
mCamera.release();
mCamera=null;
flashButton.setText("OFF");
}// maybe another one for ON
}
Right now its setting if mCamera!=null but then how do I check if flash is AUTO, ON, or OFF? I’m thinking that there maybe a SWITCH instead? I’m trying to keep these settings in one button, so its kind of a toggle. Can someone help me with this?
Thanks in advance.
UPDATED CODE
//Flash Button
final Button flashButton = (Button) findViewById(id.camera_flash);
flashButton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Parameters p = mCamera.getParameters();
// TODO Auto-generated method stub
if(p.getFlashMode() == android.hardware.Camera.Parameters.FLASH_MODE_ON){
p.setFlashMode(Parameters.FLASH_MODE_OFF);
mCamera.setParameters(p);
mCamera.startPreview();
flashButton.setText("Off");
Log.e("Torch","MODE OFF");
}else if(p.getFlashMode() == android.hardware.Camera.Parameters.FLASH_MODE_OFF){
p.setFlashMode(Parameters.FLASH_MODE_TORCH);
mCamera.setParameters(p);
mCamera.release();
mCamera=null;
flashButton.setText("TORCH");
Log.e("Torch","MODE TORCH");
}else if(p.getFlashMode() == android.hardware.Camera.Parameters.FLASH_MODE_AUTO){
p.setFlashMode(Parameters.FLASH_MODE_ON);
mCamera.setParameters(p);
mCamera.startPreview();
flashButton.setText("ON");
Log.e("Torch","MODE ON");
}else if(p.getFlashMode() == android.hardware.Camera.Parameters.FLASH_MODE_TORCH){
p.setFlashMode(Parameters.FLASH_MODE_ON);
mCamera.setParameters(p);
mCamera.startPreview();
flashButton.setText("AUTO");
Log.e("Torch","MODE AUTO");
}else{
p.setFlashMode(Parameters.FLASH_MODE_AUTO);
mCamera.setParameters(p);
mCamera.startPreview();
flashButton.setText("AUTO");
Log.e("Torch","MODE AUTO");
}
}
You can check if flash is AUTO, ON, or OFF as: