2

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

2 回答 2

2

更改方向会导致您的应用程序破坏其当前活动,然后重新创建它,实质上是从头开始重新启动应用程序。

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

于 2012-09-28T09:44:24.837 回答
1

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

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

这样,即使您的应用程序旋转,方向也不会改变。如果您打算处理方向变化,请寻求 Sean O'Toole 的解决方案

于 2012-09-28T10:39:33.773 回答