0

我正在使用 LogCat 来显示我的值,但它不能通过我的 if 语句工作?

    Parameters p = mCamera.getParameters();
    p.setFlashMode(Parameters.FLASH_MODE_OFF);
    mCamera.setParameters(p);
    mCamera.startPreview();
    Log.d("Torch","MODE AUTO: " + p.getFlashMode() + "," + Parameters.FLASH_MODE_AUTO);

    //Flash Button
    final Button flashButton = (Button) findViewById(id.camera_flash);
    flashButton.setOnClickListener(new View.OnClickListener() {


        @Override
        public void onClick(View v) {
            Parameters p = mCamera.getParameters();
            Log.d("Torch","MODE : " + p.getFlashMode() + "," + android.hardware.Camera.Parameters.FLASH_MODE_OFF);

            // TODO Auto-generated method stub
            if(p.getFlashMode() == Parameters.FLASH_MODE_ON){
                p.setFlashMode(Parameters.FLASH_MODE_OFF);
                mCamera.setParameters(p);
                mCamera.startPreview();
                flashButton.setText("Off");
                Log.e("Torch","MODE OFF");

            }else if(p.getFlashMode() == Parameters.FLASH_MODE_OFF){
                p.setFlashMode(Parameters.FLASH_MODE_TORCH);
                mCamera.setParameters(p);
                mCamera.startPreview();
                flashButton.setText("TORCH");
                Log.e("Torch","MODE TORCH");

            }else if(p.getFlashMode() == android.hardware.Camera.Parameters.FLASH_MODE_AUTO){
                p.setFlashMode(Parameters.FLASH_MODE_ON);
                mCamera.setParameters(p);
                mCamera.startPreview();
                flashButton.setText("ON");
                Log.d("Torch","MODE ON: " + p.getFlashMode() + "," + android.hardware.Camera.Parameters.FLASH_MODE_AUTO);

            }else if(p.getFlashMode() == android.hardware.Camera.Parameters.FLASH_MODE_TORCH){
                p.setFlashMode(Parameters.FLASH_MODE_ON);
                mCamera.setParameters(p);
                mCamera.startPreview();
                flashButton.setText("AUTO");
                Log.e("Torch","MODE AUTO");

            }/*else
                p.setFlashMode(Parameters.FLASH_MODE_AUTO);
                mCamera.setParameters(p);
                mCamera.startPreview();
                flashButton.setText("AUTO");
                Log.d("Torch","MODE AUTO: " + p.getFlashMode() + "," + android.hardware.Camera.Parameters.FLASH_MODE_AUTO);

            }   */      
        }

我得到MODE AUTO: off,auto(在我的 onCreate 内)和MODE: off,off(在 onClick 内)。这些是我的测试,所以理论上,如果我的 onCreate 是,off,auto那么它应该通过if(p.getFlashMode() == Parameters.FLASH_MODE_OFF),但不是吗?

有什么理由不通过我的 if 语句?

提前致谢

4

1 回答 1

2

Camera.Parameters.FLASH_MODE_ON,Camera.Parameters.FLASH_MODE_OFFStrings.(这里) 你需要比较使用equals().

if(p.getFlashMode().equals(Parameters.FLASH_MODE_ON))

于 2012-05-12T19:40:07.510 回答