2010-05-30 31 views
1

提高屏幕亮度有明显的在Android OS改变屏幕亮度至少三种不同的技术。其中两个不再工作后杯形蛋糕和第三个接受的技术显然有一个错误。的活动

我想在一观看活动的开始可以提高屏幕亮度然后转动亮度回用户设置在活动结束。没有按钮,没有第二个视图或第二个活动。在开始时只需一个最大亮度,并在活动结束时恢复原始亮度设置。

使用,我已位于范围从2行代码

WindowManager.LayoutParams lp = getWindow().getAttributes(); 
lp.screenBrightness = 100/100.0f; 
getWindow().setAttributes(lp); 

到的源代码和众多的活动几页WindowManager.LayoutParams的当前技术的例子。

有没有一个简单的例子,可以在开始时让屏幕亮度达到最大,以便有人可以提供链接?

回答

2

它的简单,你可以做的是使用拖放使XML格式的搜索栏或写它的XML

SeekBar 
    android:id="@+id/brightnesSseeker" 
    android:layout_width="match_parent" 
    android:layout_height="wrap_content" 
    android:layout_weight="1" 
    android:max="255" 
    android:progress="255" /> 

在MainActivity类别做到这一点:

brightnesSseeker = (SeekBar) findViewById(R.id.brightnesSseeker); 

    brightnesSseeker 
      .setOnSeekBarChangeListener(new OnSeekBarChangeListener() { 
       public void onStopTrackingTouch(SeekBar seekBar) { 
        // Nothing handled here 
       } 

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

       public void onProgressChanged(SeekBar seekBar, 
         int progress, boolean fromUser) { 
        // Set the minimal brightness level 
        // if seek bar is 20 or any value below 
        if (progress <= 20) { 
         // Set the brightness to 20 
         screenBrightness(20); 
        } else { 
         // Set brightness variable based on the progress bar 
         screenBrightness(progress); 
        } 
        stobeVariable=progress*10; 
       } 
      }); 

,然后写一个简单的函数:

private void screenBrightness(double newBrightnessValue) { 
    /* 
    * WindowManager.LayoutParams settings = getWindow().getAttributes(); 
    * settings.screenBrightness = newBrightnessValue; 
    * getWindow().setAttributes(settings); 
    */ 
    WindowManager.LayoutParams lp = getWindow().getAttributes(); 
    float newBrightness = (float) newBrightnessValue; 
    lp.screenBrightness = newBrightness/(float) 255; 
    getWindow().setAttributes(lp); 
} 

在调用screenBrightness函数之前也请检查亮度模式,因为som此时该模式被选择为自动亮度,在这种情况下亮度不会改变。您也需要清单文件的权限。

<uses-permission android:name="android.permission.WRITE_SETTINGS" /> 

通话中的onCreate功能波纹管setOnSeekBarChangeListener前

void changeBrightnessMode(){ 

    try { 
     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); 
     } 


    } catch (Exception e) { 
     // do something useful 

    } 
}