2
    // Get the camera
        private void getCamera() {
            if (camera == null) {
                try {
                    camera = Camera.open();
                    params = camera.getParameters();
                } catch (RuntimeException e) {
                    Log.e("Camera Error. Failed to Open. Error: ", e.getMessage());
                }
            }
        }





// Turning On flash
    private void turnOnFlash() {
        if (!isFlashOn) {
            if (camera == null || params == null) {
                return;
            }
        // play sound
        playSound();

        params = camera.getParameters();
        params.setFlashMode(Parameters.FLASH_MODE_TORCH);
        camera.setParameters(params);
        camera.startPreview();
        isFlashOn = true;

        // changing button/switch image
        toggleButtonImage();
    }

}

我的涉及闪光灯的代码在上面,任何建议,如何让闪光灯在我的应用程序打开时不打开,但只有在我按下按钮时

4

1 回答 1

0

我猜你正在打电话turnFlashOn()并且onCreate()没有按钮 ClickListener。但您可能会打电话turnFlashOn()onStart()onResume()

要通过按下按钮打开它,您应该执行以下操作

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.your_view);

    flashlight_button = (Button) findViewById(R.id.your_button);
    flashlight_button.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View view) {
            getCamera();
            turnOnFlash();
        }
    });

}

我为 Android 构建了一个开源手电筒,您可以在Joe github 的 Flashlight中查看它。

于 2014-05-06T07:53:23.090 回答