测试Activity:

package com.home.screenbrightness;import android.app.Activity;import android.os.Bundle;import android.provider.Settings;import android.widget.SeekBar;import android.widget.SeekBar.OnSeekBarChangeListener;public class TestScreenBrightnessActivity extends Activity {private int brightness;private SeekBar seekbar;@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.main);seekbar = (SeekBar) findViewById(R.id.main_sb);initBrightness();seekbar.setOnSeekBarChangeListener(new OnSeekBarChangeListener() {@Overridepublic void onStopTrackingTouch(SeekBar seekBar) {brightness = seekBar.getProgress();seekBar.setProgress(brightness);SetAndGetDataUtil.SetData(getApplicationContext(), "test","light", brightness + "");}@Overridepublic void onStartTrackingTouch(SeekBar seekBar) {}@Overridepublic void onProgressChanged(SeekBar seekBar, int progress,boolean fromUser) {int curProgress = seekBar.getProgress();// 得到当前进度值// 当进度小于70时,设置成70,防止太黑看不见的情况。if (curProgress < 70) {curProgress = 70;}// 根据当前进度改变屏幕亮度Settings.System.putInt(getContentResolver(),Settings.System.SCREEN_BRIGHTNESS, curProgress);curProgress = Settings.System.getInt(getContentResolver(),Settings.System.SCREEN_BRIGHTNESS, -1);BrightnessUtil.setBrightness(TestScreenBrightnessActivity.this,curProgress);// BrightnessUtil.saveBrightness(TestScreenBrightnessActivity.this,// curProgress);}});}/** * 初始化屏幕亮度值 */private void initBrightness() {// 如果开启了自动亮度调节,则关闭之if (BrightnessUtil.isAutoBrightness(this)) {BrightnessUtil.stopAutoBrightness(this);}// 读取文件中设置的亮度值String light = SetAndGetDataUtil.GetData(this, "test", "light");if (!"".equals(light)) {brightness = Integer.valueOf(light);} else {brightness = BrightnessUtil.getScreenBrightness(this);}BrightnessUtil.setBrightness(this, brightness);seekbar.setProgress(brightness);}}

存取数据工具类:SetAndGetDataUtil

package com.home.screenbrightness;import android.content.Context;import android.content.SharedPreferences;import android.content.SharedPreferences.Editor;/** * 保存数据的工具类 *  * @author Administrator *  */public class SetAndGetDataUtil {private static SharedPreferences sp;@SuppressWarnings("static-access")public static void SetData(Context context, String filename, String key,String value) {sp = context.getSharedPreferences(filename, context.MODE_PRIVATE);Editor editor = sp.edit();editor.putString(key, value);editor.commit();}@SuppressWarnings("static-access")public static String GetData(Context context, String filename, String key) {String value = "";sp = context.getSharedPreferences(filename, context.MODE_PRIVATE);value = sp.getString(key, "");return value;}}

屏幕亮度处理工具类:

package com.home.screenbrightness;import android.app.Activity;import android.content.ContentResolver;import android.net.Uri;import android.provider.Settings;import android.provider.Settings.SettingNotFoundException;import android.view.WindowManager;/** * 处理屏幕亮度的工具类 *  * @author Administrator *  */public class BrightnessUtil {/** * 判断是否开启了自动亮度调节 *  * @param activity * @return */public static boolean isAutoBrightness(Activity activity) {boolean isAutoAdjustBright = false;try {isAutoAdjustBright = Settings.System.getInt(activity.getContentResolver(),Settings.System.SCREEN_BRIGHTNESS_MODE) == Settings.System.SCREEN_BRIGHTNESS_MODE_AUTOMATIC;} catch (SettingNotFoundException e) {e.printStackTrace();}return isAutoAdjustBright;}/** * 获取屏幕的亮度 *  * @param activity * @return */public static int getScreenBrightness(Activity activity) {int brightnessValue = 0;try {brightnessValue = android.provider.Settings.System.getInt(activity.getContentResolver(),Settings.System.SCREEN_BRIGHTNESS);} catch (Exception e) {e.printStackTrace();}return brightnessValue;}/** * 设置屏幕亮度 *  * @param activity * @param brightness */public static void setBrightness(Activity activity, int brightness) {WindowManager.LayoutParams lp = activity.getWindow().getAttributes();lp.screenBrightness = Float.valueOf(brightness) * (1f / 255f);activity.getWindow().setAttributes(lp);}/** * 关闭亮度自动调节 *  * @param activity */public static void stopAutoBrightness(Activity activity) {Settings.System.putInt(activity.getContentResolver(),Settings.System.SCREEN_BRIGHTNESS_MODE,Settings.System.SCREEN_BRIGHTNESS_MODE_MANUAL);}/** * 开启亮度自动调节 *  * @param activity */public static void startAutoBrightness(Activity activity) {Settings.System.putInt(activity.getContentResolver(),Settings.System.SCREEN_BRIGHTNESS_MODE,Settings.System.SCREEN_BRIGHTNESS_MODE_AUTOMATIC);}/** * 保存亮度设置状态 *  * @param activity * @param brightness */public static void saveBrightness(Activity activity, int brightness) {Uri uri = android.provider.Settings.System.getUriFor("screen_brightness");ContentResolver resolver = activity.getContentResolver();android.provider.Settings.System.putInt(resolver, "screen_brightness",brightness);resolver.notifyChange(uri, null);}}

布局文件:

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"    android:layout_width="match_parent"    android:layout_height="match_parent"    android:gravity="center"    android:orientation="vertical" >    <SeekBar        android:id="@+id/main_sb"        style="@android:style/Widget.ProgressBar.Horizontal"        android:layout_width="match_parent"        android:layout_height="wrap_content"        android:max="255" /></LinearLayout>


记得加上权限:

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





更多相关文章

  1. android判断屏幕为横屏还是竖屏
  2. android 获得屏幕宽和高
  3. Android在屏幕任意位置显示对话框
  4. 【Android】报表、线图、饼图、柱状图 (工具整理) .
  5. 设置屏幕显示模式ScreenOrientation.
  6. Android获得屏幕高度和状态栏高度
  7. Android getDecorView用途——屏幕截图
  8. 屏幕切换,保存内容
  9. 2011.07.20——— android 获得当前view在屏幕的坐标

随机推荐

  1. Android单元测试测试
  2. Android(安卓)layout之间有空隙
  3. Android之布局
  4. Android系统自带样式(@android:style/)
  5. Android(安卓)title 高度定义
  6. android 改变输入法enter键文字 为搜索
  7. 关于Android中的 ToggleButton 组件 (待续
  8. Android(安卓)自定义dialog
  9. 【Android】代码中设置drawableLeft|Top|
  10. Android日历控件