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);
}
我想在手电筒应用程序中添加一个计时器,以便在所选时间内保持手电筒开启
答案 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