2013-05-12 2 views
1

저는 거기에 밝기와 작동을 변경하기 위해 내 응용 프로그램에서 검색 바를 가지고 있습니다. 는 그 다음 문제는 여기에 뒤로 버튼을 눌렀을 때 밝기가 저장되지 않습니다.

밝기 변경하려면 코드입니다 .. 내가 다른 활동을 탐색 할 수있는 뒤로 버튼을 누를 때, 밝기가 다시 기본으로 간다,이다 : 사전에 많이

private void applyBrightnessListener() { 
    SeekBar brightnessControl = (SeekBar) findViewById(R.id.brightnessControl); 

    brightnessControl.setOnSeekBarChangeListener(new SeekBar.OnSeekBarChangeListener() { 
     @Override 
     public void onProgressChanged(SeekBar arg0, int arg1, boolean arg2) { 
      // TODO Auto-generated method stub 
      float BackLightValue = (float)arg1/100; 
      WindowManager.LayoutParams layoutParams = getWindow().getAttributes(); 
      layoutParams.screenBrightness = BackLightValue; 
      getWindow().setAttributes(layoutParams); 
      android.provider.Settings.System.putInt(
       GeneralSettings.this.getContentResolver(), 
       android.provider.Settings.System.SCREEN_BRIGHTNESS, 
       (int)BackLightValue); 
     } 

     @Override 
     public void onStartTrackingTouch(SeekBar arg0) { 
     // TODO Auto-generated method stub 
     } 

     @Override 
     public void onStopTrackingTouch(SeekBar arg0) { 
     // TODO Auto-generated method stub 
     } 
    }); 
} 

감사합니다;)

+0

글로벌 장치 밝기 수준을 변경하려는 것 같습니다. 자동 모드를 사용하는지 확인하고 있습니까? – ozbek

+0

자동 모드가 비활성화되었습니다. – TiagoM

답변

1

슬프게도 그 밝기를 추적하고 각 활동에 대해 설정해야합니다. 한 번 설정하고 유지할 수 없습니다.

값을 환경 설정 또는 다른 방법으로 저장해야하는 경우 각 활동을 시작할 때 환경 설정을로드하고 활동에 설정해야합니다.

좋은 방법 중 하나는 Activity를 하위 클래스로 분류하고 onCreate 메서드에이 코드를 추가하는 것입니다.

   WindowManager.LayoutParams layoutParams = getWindow().getAttributes(); 
       layoutParams.screenBrightness = savedBackLightValue; 
       getWindow().setAttributes(layoutParams); 
+0

답장을 보내 주셔서 감사합니다. 세상에 정말 이니? 내 앱에서 새로운 활동을 할 때마다 그 앱을 확장해야합니다. : s – TiagoM

+1

예. 그것은 고통처럼 들리지만, 당신이 서브 클래스를 만들면, 한번만 쓰면됩니다. (몇가지 타입의 액티비티를 가지고 있다면 몇 번이나 쓸 것입니다.) – HalR

+0

예 10 개의 액티비티가 있습니다.하지만 테스트해볼 게요. 그것은 작동하지만, 최소한 해결책입니다 :/아무것도하지 못했습니다. – TiagoM