Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/178.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 安卓2.2:调整屏幕亮度_Android_Screen_Brightness - Fatal编程技术网

Android 安卓2.2:调整屏幕亮度

Android 安卓2.2:调整屏幕亮度,android,screen,brightness,Android,Screen,Brightness,我想调整屏幕亮度。但是当我尝试使用这种方法时,什么都没有发生。可能是因为我使用了KEEP_SCREEN_ON标志吗?屏幕亮度的值介于0.0f和1.0f之间,可能您的值太大了。 我使用WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON标志,还可以调整屏幕亮度在设置屏幕亮度之前,确保未启用“自动亮度”。如果您使用的是Android 2.2或更高版本的SDK,则可以在设置>显示或使用代码中手动执行此操作 比如: public void SetBrigh

我想调整屏幕亮度。但是当我尝试使用这种方法时,什么都没有发生。可能是因为我使用了KEEP_SCREEN_ON标志吗?

屏幕亮度的值介于
0.0f
1.0f
之间,可能您的值太大了。 我使用WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON标志,还可以调整屏幕亮度

在设置屏幕亮度之前,确保未启用“自动亮度”。如果您使用的是Android 2.2或更高版本的SDK,则可以在设置>显示或使用代码中手动执行此操作

比如:

    public void SetBright(float value) 
{
    Window mywindow = getWindow();

    WindowManager.LayoutParams lp = mywindow.getAttributes();

            lp.screenBrightness = value;

            mywindow.setAttributes(lp);
}

确保该值介于0.0F和1.0F之间。值-1.0F使用首选项中存储的默认亮度。根据文档“小于0的值(默认值)表示使用首选屏幕亮度。0到1可将亮度从暗调整为全亮。”

使用seekbar调整亮度:

公共类AndroidRightnessActivity扩展了活动{

int brightnessMode = Settings.System.getInt(getContentResolver(), Settings.System.SCREEN_BRIGHTNESS_MODE);
if (brightnessMode == Settings.System.SCREEN_BRIGHTNESS_MODE_AUTOMATIC) {
    Settings.System.putInt(getContentResolver(), Settings.System.SCREEN_BRIGHTNESS_MODE, Settings.System.SCREEN_BRIGHTNESS_MODE_MANUAL);
}

WindowManager.LayoutParams layoutParams = getWindow().getAttributes();
layoutParams.screenBrightness = 0.5F; // set 50% brightness
getWindow().setAttributes(layoutParams);
private SeekBar-brightbar;
亮度;
私有内容解析程序cResolver;
私人窗口;
TextView-txtPerc;
@凌驾
创建时的公共void(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
brightbar=(SeekBar)findViewById(R.id.brightbar);
txtPerc=(TextView)findViewById(R.id.txtPercentage);
cResolver=getContentResolver();
window=getWindow();
设置最大值(255);
brightbar.setKeyProgressIncrement(1);
尝试
{
亮度=System.getInt(cResolver,System.SCREEN_亮度);
}
捕获(设置NotFound异常e)
{
Log.e(“错误”,“无法访问系统亮度”);
e、 printStackTrace();
}
设置进度(亮度);
setOnSeekBarChangeListener(新的OnSeekBarChangeListener()
{
TopTrackingTouch(SeekBar SeekBar)上的公共无效
{
系统输入(cResolver,系统屏幕亮度,亮度);
LayoutParams layoutpars=window.getAttributes();
layoutpars.screenBrightness=亮度/(浮动)255;
设置属性(layoutpars);
}
开始跟踪触摸时的公共无效(SeekBar SeekBar)
{
//这里什么都没处理
}
public void onProgressChanged(SeekBar-SeekBar、int-progress、boolean-fromUser)
{

如果(只是一个注释,当您将其粘贴到IDE中时,它会抱怨“Settings.system…”,请确保您的项目设置为至少使用android v 2.3.3,否则它不会编译:)使用WindowManager.LayoutParams设置屏幕亮度,即使启用了“Auto brightness”。如文档中所述,“屏幕亮度可用于覆盖用户首选的屏幕亮度“.在Android 4.1和4.4上测试。@Adam Thomas你能告诉我我正在应用值0.5F,但在0.1,0.2工作时它不工作,而在值0.5时它仍然将值设置为0.2,这意味着20%只是一个上限,更改Android设置需要Android.permission.WRITE_设置
private SeekBar brightbar;
private int brightness;
private ContentResolver cResolver;
private Window window;
TextView txtPerc;
@Override
public void onCreate(Bundle savedInstanceState)
{
    super.onCreate(savedInstanceState);
    setContentView(R.layout.main);
    brightbar = (SeekBar) findViewById(R.id.brightbar);
    txtPerc = (TextView) findViewById(R.id.txtPercentage);
    cResolver = getContentResolver();
    window = getWindow();
    brightbar.setMax(255);
    brightbar.setKeyProgressIncrement(1);

    try
    {
        brightness = System.getInt(cResolver, System.SCREEN_BRIGHTNESS);
    }
    catch (SettingNotFoundException e)
    {
        Log.e("Error", "Cannot access system brightness");
        e.printStackTrace();
    }
    brightbar.setProgress(brightness);
    brightbar.setOnSeekBarChangeListener(new OnSeekBarChangeListener()
    {
        public void onStopTrackingTouch(SeekBar seekBar)
        {
            System.putInt(cResolver,System.SCREEN_BRIGHTNESS,brightness);
            LayoutParams layoutpars = window.getAttributes();
            layoutpars.screenBrightness = brightness / (float)255;
            window.setAttributes(layoutpars);
        }

        public void onStartTrackingTouch(SeekBar seekBar)
        {
            //Nothing handled here
        }

        public void onProgressChanged(SeekBar seekBar, int progress, boolean fromUser)
        {
            if(progress<=20)
            {
              brightness=20;
            }
            else
            {
                brightness = progress;
            }
            float perc = (brightness /(float)255)*100;
            txtPerc.setText((int)perc +" %");
        }
    });   
}