![](/img/trans.png)
[英]What gets called when the screen changes orientation? My app is restarting when I change orientations
[英]When my camera changes orientation, my app crashes for no reason
好的,所以也许是有原因的。 我还是这个新手。 这是我的代码。 在完成方法的内部。 我在这条线上收到错误: camera.setParameters(p);
当我打开相机或手机时。 多数民众赞成在导致错误的行。 如果我注释掉。 相机可能会保持开启状态。 然后我在camera.stopPreview();
上得到一个错误camera.stopPreview();
线。
public void strobeTimer182() {
superStrobe = new CountDownTimer(857, 10) {
public void onTick(long millisUntilFinished) {
textView2.setText("seconds remaining: " + millisUntilFinished
/ 2);
if (millisUntilFinished % 5 == 0
|| millisUntilFinished % 2 == 0
|| millisUntilFinished % 3 == 0
|| millisUntilFinished % 7 == 0) {
p.setFlashMode(Parameters.FLASH_MODE_TORCH);
camera.setParameters(p);
camera.startPreview();
} else {
p.setFlashMode(Parameters.FLASH_MODE_OFF);
camera.setParameters(p);
camera.stopPreview();
textView2.setText("off");
}
}
public void onFinish() {
textView2.setText("done!");
// Set the flashmode to off
p.setFlashMode(Parameters.FLASH_MODE_OFF);
// Pass the parameter ti camera object
camera.setParameters(p);
//camera.stopPreview();
textView2.setText("off");
}
}.start();
superStrobe.onFinish();
}
将此添加到您的活动中。希望有帮助:)
android:configChanges="orientation|keyboardHidden|screenSize"
public void strobeTimer182() {
superStrobe = new CountDownTimer(857, 1) {
public void onTick(long millisUntilFinished) {
if (millisUntilFinished % 2 == 0) {
p.setFlashMode(Parameters.FLASH_MODE_TORCH);
camera.setParameters(p);
camera.startPreview();
p.setFlashMode(Parameters.FLASH_MODE_OFF);
camera.setParameters(p);
camera.stopPreview();
} else {
p.setFlashMode(Parameters.FLASH_MODE_TORCH);
camera.setParameters(p);
camera.startPreview();
p.setFlashMode(Parameters.FLASH_MODE_OFF);
camera.setParameters(p);
camera.stopPreview();
}
if (millisUntilFinished == 0) {
p.setFlashMode(Parameters.FLASH_MODE_TORCH);
camera.setParameters(p);
camera.startPreview();
p.setFlashMode(Parameters.FLASH_MODE_OFF);
camera.setParameters(p);
camera.stopPreview();
}
}
public void onFinish() {
// causes errors
}
}.start();
superStrobe.onFinish();
}
要么
public void strobeTimer182() {
superStrobe = new CountDownTimer(857, 1) {
public void onTick(long millisUntilFinished) {
p.setFlashMode(Parameters.FLASH_MODE_TORCH);
camera.setParameters(p);
camera.startPreview();
p.setFlashMode(Parameters.FLASH_MODE_OFF);
camera.setParameters(p);
camera.stopPreview();
}
public void onFinish() {
// causes errors
}
}.start();
superStrobe.onFinish();
}
第一个选项是,如果您想循环浏览三个以上的状态,然后将其设置回第一状态。
第二个用于频闪的开-关效果,但我选择了第一个。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.