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 に答える