我制作手电筒Android应用程序,我制作了搜索栏来改变闪烁的速度。但是直到我按下中间的按钮打开和关闭闪光灯才能反映出速度的变化,我怎么能github link attached below直接从搜索栏改变速度
答案 0 :(得分:0)
StroboRunner使用它自己的频率,而不是全局频率。所以,你需要重新启动线程。
@Override
public void onProgressChanged(SeekBar seekBar, int progress, boolean fromUser) {
freq = progress;
turnOnOff(powerButton.isChecked());
}
private void turnOnOff(boolean on){
if (on) {
if (freq != 0) {
sr = new StroboRunner();
sr.freq = freq;
if (t != null) {
t.interrupt(); // this. kill previous thread.
}
t = new Thread(sr);
t.start();
return;
} else
params.setFlashMode(Camera.Parameters.FLASH_MODE_TORCH);
}
if (!on) {
if (t != null) {
sr.stopRunning = true;
t.interrupt(); // this
t = null;
return;
} else
params.setFlashMode(Camera.Parameters.FLASH_MODE_OFF);
}
camera.setParameters(params);
camera.startPreview();
}