我创建了一个Android应用程序,允许用户通过按下按钮打开和关闭闪光灯。如果用户打开闪光灯并改变方向,则指示灯将熄灭。为什么会这样。请参阅下面的代码我使用过。
cam = Camera.open();
final Parameters p = cam.getParameters();
torch_switch = (Button)findViewById(R.id.torch_switch);
torch_switch.setOnClickListener(new OnClickListener() {
public void onClick(View v) {
// TODO Auto-generated method stub
if(isLightOn) {
torch_switch.setText("Switch ON Torch");
p.setFlashMode(Parameters.FLASH_MODE_OFF);
cam.setParameters(p);
cam.stopPreview();
isLightOn = false;
} else {
torch_switch.setText("Switch OFF Torch");
p.setFlashMode(Parameters.FLASH_MODE_TORCH);
cam.setParameters(p);
cam.startPreview();
isLightOn = true;
}
}
});
答案 0 :(得分:2)
更改方向会导致您的应用销毁其当前活动,然后重新创建它,实际上从一开始就重新启动应用。
您可以通过禁止清单中的方向更改来修复它,或者将当前模式存储在“onStop”方法中,然后可能在“OnStart”中恢复它。
答案 1 :(得分:1)
最简单的方法是修复您的方向,将以下内容添加到您的清单
<activity android:name=".abc" android:screenOrientation="portrait" />
这样,即使你的应用程序被旋转,方向也不会改变。如果您计划处理方向更改,请从Sean O'Toole获取解决方案