如何通过android中的编程改变android中屏幕的对比度?我搜索了太多的博客,没有任何地方提到。有没有可能控制对比度,如果可能,请给我提供示例代码。
提前感谢
发布于 2014-03-18 13:57:39
查看this链接可能对您有帮助....
另请参阅代码
Settings.System.putInt(this.getContentResolver(),
Settings.System.SCREEN_BRIGHTNESS, 20);
WindowManager.LayoutParams lp = getWindow().getAttributes();
lp.screenBrightness =0.2f;// 100 / 100.0f;
getWindow().setAttributes(lp);
startActivity(new Intent(this,RefreshScreen.class));发布于 2017-05-11 19:25:31
公共类MainActivity扩展了AppCompatActivity {
boolean isFrontOn;
ImageButton btnFront;
SeekBar brightnessBar;
float brightness;
ContentResolver cResolver;
RelativeLayout overlayLayout;
String permissions[] = {"android.permission.WRITE_SETTING"};
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
btnFront = (ImageButton) findViewById(R.id.btnFront);
brightnessBar = (SeekBar) findViewById(R.id.brightnessBar);
cResolver = getContentResolver();
brightnessBar.setMax(255);
brightnessBar.setKeyProgressIncrement(1);
btnFront.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
if (!isFrontOn)
turnFrontOn();
else
turnFrontOff();
}
});
try {
brightness = Settings.System.getInt(cResolver, Settings.System.SCREEN_BRIGHTNESS);
} catch (Settings.SettingNotFoundException e) {
e.printStackTrace();
}
int screenBrightness = (int) brightness;
brightnessBar.setProgress(screenBrightness);
brightnessBar.setOnSeekBarChangeListener(new SeekBar.OnSeekBarChangeListener() {
int progressVal = 0;
@Override
public void onProgressChanged(SeekBar seekBar, int progress, boolean fromUser) {
if (progress <= 20)
progressVal = 20;
else
progressVal = progress;
}
@Override
public void onStartTrackingTouch(SeekBar seekBar) {
}
@Override
public void onStopTrackingTouch(SeekBar seekBar) {
if (Build.VERSION.SDK_INT < 23 || checkSelfPermission(permissions[0]) != PackageManager.PERMISSION_DENIED)
Settings.System.putInt(cResolver, Settings.System.SCREEN_BRIGHTNESS, progressVal);
else requestPermissions(permissions, 0);
}
});
}
@Override
public void onRequestPermissionsResult(int requestCode, @NonNull String[] permissions, @NonNull int[] grantResults) {
super.onRequestPermissionsResult(requestCode, permissions, grantResults);
if ( checkSelfPermission(permissions[0]) == PackageManager.PERMISSION_GRANTED) {
//ToDo your code here after checking permission
/*
i.e) Settings.System.putInt(cResolver, Settings.System.SCREEN_BRIGHTNESS, progressVal);
*/
}
}}
如果您的设备API大于22,请在代码中尝试此操作
https://stackoverflow.com/questions/22471318
复制相似问题