2010-05-30 17 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 

    } 
}