2013-05-20 36 views
0

我設置新的亮度後,屏幕不刷新。我搜索了它,嘗試了幾件事,我做錯了什麼?Android亮度刷新不起作用

public class Brightness extends Activity { 

@Override 

public void onCreate(Bundle savedInstanceState) { 

    super.onCreate(savedInstanceState); 

    setContentView(R.layout.brightness); 
    setResult(RESULT_OK); 
    Button low = (Button)findViewById(R.id.low); 

    low.setOnClickListener(new Button.OnClickListener() 
    { 
      public void onClick(View arg0) 
      { 
       setUp(100); 

    }}); 
    Button medium = (Button)findViewById(R.id.medium); 
    medium.setOnClickListener(new Button.OnClickListener() 
    { 
      public void onClick(View arg0) 
      { 
       setUp(200); 

    }}); 
    Button high = (Button)findViewById(R.id.high); 
    high.setOnClickListener(new Button.OnClickListener() 
    { 
      public void onClick(View arg0) 
      { 
       setUp(255); 

    }});   
} 
    public void setUp(int SysBackLightValue) 
    { 
     android.provider.Settings.System.putInt(getContentResolver(), android.provider.Settings.System.SCREEN_BRIGHTNESS, SysBackLightValue); 
     WindowManager.LayoutParams layoutParams = getWindow().getAttributes(); 
     layoutParams.screenBrightness = SysBackLightValue; 
     getWindow().setAttributes(layoutParams); 
     finish(); 
    } 
} 

這是從它調用Brightness.java

if (resultCode == Activity.RESULT_OK && requestCode == 10) 
    { 
     Log.i("login", "In ActivityRedult My screen brightness is "); 
     try 
     { 
      oldBrightness = android.provider.Settings.System.getInt(getContentResolver(), android.provider.Settings.System.SCREEN_BRIGHTNESS); 
      WindowManager.LayoutParams layoutParams = getWindow().getAttributes(); 
      layoutParams.screenBrightness = oldBrightness; 
      getWindow().setAttributes(layoutParams); 
        } 
     catch (SettingNotFoundException e1) 
     { 
      Log.i("login", "CATCH My screen brightness is " + e1.toString()); 
      e1.printStackTrace(); 
     }    
    } 
} 

回答

0

我不記得這樣做的原因,其中的活性,但有兩種方法來設置亮度,和他們在不同的時間使用(或可能由不同的API支持)

這是我用於我的應用程序在市場上的超級調光器(爲您的案例重構)的代碼的一部分。嘗試使用此代碼,而不是:

oldBrightness = Settings.System.getInt(this.getContentResolver(), Settings.System.SCREEN_BRIGHTNESS); 
Settings.System.putInt(this.getContentResolver(), Settings.System.SCREEN_BRIGHTNESS, oldBrightness);  
WindowManager.LayoutParams llayoutParams = getWindow().getAttributes(); 
layoutParams.screenBrightness = (float) (oldBrightness/ 255.0); 
getWindow().setAttributes(layoutParams); 

我認爲區別在於您錯過了putInt()。另外,你的屏幕總是全亮嗎?我可能是錯的,但在我的應用程序中,當我設置layoutParams屬性時,我除以255,它的作用就像一個魅力。

+0

你是個天才! 255給我工作了!謝謝。 – user533844