2011-02-25 1 views
0

나는 안드로이드 카메라 기능으로 놀고 있습니다. 나는 oncheck 메뉴를 사용하여 카메라 매개 변수를 동적으로 변경하고 변경을 구현하기 위해 surfacechanged를 호출하려고합니다.surfacechanged 카메라에서 setparameters()를 전송하는 가장 좋은 방법

공개 부울 Camera.Parameters 파라미터 =의 camera.getParameters {(INT의 H, w하는 int SurfaceHolder에 홀더 INT 형식) (MenuItem의 항목) {

  Camera.Parameters parameters = camera.getParameters(); 
      switch (item.getItemId()) { 
      case R.id.EFFECT_AQUA: 
       Toast.makeText(this, "AQUA", Toast.LENGTH_SHORT).show(); 
       if (item.isChecked()) item.setChecked(false); 
       else item.setChecked(true); 
       parameters.setColorEffect(Camera.Parameters.EFFECT_AQUA); 
       surfaceChanged(null, 0, 0,0); 
       return true; 

공개 무효 surfaceChanged을 onOptionsItemSelected(); camera.setParameters (parameters); camera.startPreview(); }

내가 메뉴얼을 검사 할 때 surfacechanged를 호출하지만 선택한 매개 변수는 setparamater 명령에 의해 사용/설정되지 않습니다.

변경 사항을 캡처하기 위해 전역을 구현할 생각 이었지만 마음에 들지 않았습니다. 우리가 surfacechanged 호출을 할 때 매개 변수를 전송하는 다른 방법이 있습니까?

답변

1

주어진 코드 스 니펫에서 변경된 매개 변수를 카메라에 게시하는 것을 잊었다 고 말하고 싶습니다. Camera 인스턴스에서 setParameters (Parameters 매개 변수)를 호출하지 않으면 카메라는 이전 매개 변수 설정을 활용합니다.

Camera.Parameters parameters = camera.getParameters(); parameters.setColorEffect(Camera.Parameters.EFFECT_AQUA); camera.setParameters(parameters); // add this line to your code

+0

또한 getSupportedColorEffects를 확인해야합니다. – Nepster

관련 문제