首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何改变android设备的屏幕对比度?

如何改变android设备的屏幕对比度?
EN

Stack Overflow用户
提问于 2014-03-18 13:46:09
回答 2查看 2.4K关注 0票数 1

如何通过android中的编程改变android中屏幕的对比度?我搜索了太多的博客,没有任何地方提到。有没有可能控制对比度,如果可能,请给我提供示例代码。

提前感谢

EN

回答 2

Stack Overflow用户

发布于 2014-03-18 13:57:39

查看this链接可能对您有帮助....

另请参阅代码

代码语言:javascript
复制
 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));
票数 2
EN

Stack Overflow用户

发布于 2017-05-11 19:25:31

公共类MainActivity扩展了AppCompatActivity {

代码语言:javascript
复制
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,请在代码中尝试此操作

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/22471318

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档