重溫Android——調節屏幕亮度


  唔,明天要去網易筆試Android實習生,於是翻出以前寫的Android代碼,溫習一下,想象一下,當然,這必然不會導致太多的本質改變,不過總得試試,就這樣, 上代碼。

 1 package android.lekko.tools;
 2 
 3 import android.app.Activity;
 4 import android.content.ContentResolver;
 5 import android.provider.Settings;
 6 import android.provider.Settings.System;
 7 import android.view.WindowManager;
 8 import android.widget.Toast;
 9 
10 public class LightnessControl {
11     // 判斷是否開啟了自動亮度調節 
12     public static boolean isAutoBrightness(Activity act) { 
13         boolean automicBrightness = false; 
14         ContentResolver aContentResolver = act.getContentResolver();
15         try { 
16             automicBrightness = Settings.System.getInt(aContentResolver, 
17                    Settings.System.SCREEN_BRIGHTNESS_MODE) == Settings.System.SCREEN_BRIGHTNESS_MODE_AUTOMATIC; 
18         } catch (Exception e) { 
19             Toast.makeText(act,"無法獲取亮度",Toast.LENGTH_SHORT).show();
20         } 
21         return automicBrightness; 
22     }     
23     // 改變亮度
24     public static void SetLightness(Activity act,int value)
25     {        
26         try {
27             System.putInt(act.getContentResolver(),System.SCREEN_BRIGHTNESS,value); 
28             WindowManager.LayoutParams lp = act.getWindow().getAttributes(); 
29             lp.screenBrightness = (value<=0?1:value) / 255f;
30             act.getWindow().setAttributes(lp);
31         } catch (Exception e) {
32             Toast.makeText(act,"無法改變亮度",Toast.LENGTH_SHORT).show();
33         }        
34     }
35     // 獲取亮度
36     public static int GetLightness(Activity act)
37     {
38         return System.getInt(act.getContentResolver(),System.SCREEN_BRIGHTNESS,-1);
39     }
40     // 停止自動亮度調節 
41     public static void stopAutoBrightness(Activity activity) { 
42         Settings.System.putInt(activity.getContentResolver(), 
43                 Settings.System.SCREEN_BRIGHTNESS_MODE, 
44                 Settings.System.SCREEN_BRIGHTNESS_MODE_MANUAL); 
45     }
46     // 開啟亮度自動調節 
47     public static void startAutoBrightness(Activity activity) { 
48         Settings.System.putInt(activity.getContentResolver(), 
49                 Settings.System.SCREEN_BRIGHTNESS_MODE, 
50                 Settings.System.SCREEN_BRIGHTNESS_MODE_AUTOMATIC); 
51     } 
52 }

  這是一個單獨可工作的類,主要用於調節屏幕亮度,有部分注釋了,解釋幾個概念,不標准,供參考:

  ContentResolver類,為訪問其它應用程序的對外共享數據提供方法,如上面獲取、設置亮度時使用的System.getInt(),System.setInt()。

  Activity類,android程序的主要類,一個界面必有此類提供后台支持,需要繼承此類。

  Settings類,android程序系統相關的設置類,各種設置都可在此找。

  LayoutParams類,android界面相關的參數,如高度、寬度、亮度等。

  Toast類,一個可自動消失的提示框,輕型控件。

  轉載請注明原址:http://www.cnblogs.com/lekko/archive/2013/03/20/2971825.html


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM