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_ONCamera.Parameters.FLASH_MODE_OFFStrings。(ここ)を使用して比較する必要がありますequals()

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

于 2012-05-12T19:40:07.510 に答える