Android亮度刷新不工作
设置新亮度后,我的屏幕不刷新。我在谷歌上搜索,尝试了一些东西,我做错了什么Android亮度刷新不工作,android,Android,设置新亮度后,我的屏幕不刷新。我在谷歌上搜索,尝试了一些东西,我做错了什么 public class Brightness extends Activity { @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.brightness); setResult(RES
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();
}
}
}
我不记得这样做的原因,但是有两种设置亮度的方法,它们在不同的时间使用(或者可能由不同的api支持) 下面是我的代码的一部分,我在市场上使用我的应用程序Super Dimmer(为您的情况进行了重构)。请尝试改用以下代码:
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,它就像一个符咒一样工作。你真是个天才!由255提供的数据也为我工作!!谢谢