Android 手电筒应用中的闪烁模式
Flashing mode in Android Flashlight app
如您所见,我正在为 android 制作手电筒,它有 2 种闪烁模式(第一种会使 LED 不间断闪烁,第二种会使闪烁之间暂停 0.5 秒),但使用我的代码它不起作用。这是我的代码:
private void turnOnFlash() {
if (!isFlashOn) {
if (camera == null || params == null) {
return;
}
params = camera.getParameters();
switch(mode) {
case 1:
params.setFlashMode(Parameters.FLASH_MODE_TORCH);
break;
case 2:
timer = new CountDownTimer(1000, 500) {
@Override
public void onTick(long millisUntilFinished) {
params.setFlashMode(Parameters.FLASH_MODE_TORCH);
}
@Override
public void onFinish() {
params.setFlashMode(Parameters.FLASH_MODE_OFF);
}
};
break;
}
camera.setParameters(params);
camera.startPreview();
isFlashOn = true;
playSound();
toggleButtonImage();
}
}
这里是检测模式的方法
tvMode.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
switch(mode) {
case 1:
mode = 2;
tvMode.setText("2");
if(isFlashOn) {
turnOffFlash();
turnOnFlash();
}
break;
case 2:
mode = 1;
tvMode.setText("1");
if(isFlashOn) {
turnOffFlash();
turnOnFlash();
}
break;
}
}
});
}
问题已解决。我忘了把 .start();
放在 CountDownTimer 的末尾。
如您所见,我正在为 android 制作手电筒,它有 2 种闪烁模式(第一种会使 LED 不间断闪烁,第二种会使闪烁之间暂停 0.5 秒),但使用我的代码它不起作用。这是我的代码:
private void turnOnFlash() {
if (!isFlashOn) {
if (camera == null || params == null) {
return;
}
params = camera.getParameters();
switch(mode) {
case 1:
params.setFlashMode(Parameters.FLASH_MODE_TORCH);
break;
case 2:
timer = new CountDownTimer(1000, 500) {
@Override
public void onTick(long millisUntilFinished) {
params.setFlashMode(Parameters.FLASH_MODE_TORCH);
}
@Override
public void onFinish() {
params.setFlashMode(Parameters.FLASH_MODE_OFF);
}
};
break;
}
camera.setParameters(params);
camera.startPreview();
isFlashOn = true;
playSound();
toggleButtonImage();
}
}
这里是检测模式的方法
tvMode.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
switch(mode) {
case 1:
mode = 2;
tvMode.setText("2");
if(isFlashOn) {
turnOffFlash();
turnOnFlash();
}
break;
case 2:
mode = 1;
tvMode.setText("1");
if(isFlashOn) {
turnOffFlash();
turnOnFlash();
}
break;
}
}
});
}
问题已解决。我忘了把 .start();
放在 CountDownTimer 的末尾。