2013-05-20 35 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