更改方向时闪光灯将关闭

时间:2012-09-28 09:34:48

标签: android camera

我创建了一个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;
            }
        }
    });

2 个答案:

答案 0 :(得分:2)

更改方向会导致您的应用销毁其当前活动,然后重新创建它,实际上从一开始就重新启动应用。

您可以通过禁止清单中的方向更改来修复它,或者将当前模式存储在“onStop”方法中,然后可能在“OnStart”中恢复它。

答案 1 :(得分:1)

最简单的方法是修复您的方向,将以下内容添加到您的清单

<activity android:name=".abc" android:screenOrientation="portrait" />

这样,即使你的应用程序被旋转,方向也不会改变。如果您计划处理方向更改,请从Sean O'Toole获取解决方案