Android编程获取并设置Activity亮度的方法

所属分类: 软件编程 / Android 阅读数: 1099
收藏 0 赞 0 分享

本文实例讲述了Android编程获取并设置Activity亮度的方法。分享给大家供大家参考,具体如下:

此API只适合2.1以上版本:

/**
 * 判断是否开启了自动亮度调节
 *
 * @param aContext
 * @return
 */
public static boolean isAutoBrightness(ContentResolver aContentResolver) {
  boolean automicBrightness = false;
  try {
    automicBrightness = Settings.System.getInt(aContentResolver,
        Settings.System.SCREEN_BRIGHTNESS_MODE) == Settings.System.SCREEN_BRIGHTNESS_MODE_AUTOMATIC;
  } catch (SettingNotFoundException e) {
    e.printStackTrace();
  }
  return automicBrightness;
}
/**
 * 获取屏幕的亮度
 *
 * @param activity
 * @return
 */
public static int getScreenBrightness(Activity activity) {
  int nowBrightnessValue = 0;
  ContentResolver resolver = activity.getContentResolver();
  try {
    nowBrightnessValue = android.provider.Settings.System.getInt(
        resolver, Settings.System.SCREEN_BRIGHTNESS);
  } catch (Exception e) {
    e.printStackTrace();
  }
  return nowBrightnessValue;
}
/**
 * 设置亮度
 *
 * @param activity
 * @param brightness
 */
public static void setBrightness(Activity activity, int brightness) {
  // Settings.System.putInt(activity.getContentResolver(),
  // Settings.System.SCREEN_BRIGHTNESS_MODE,
  // Settings.System.SCREEN_BRIGHTNESS_MODE_MANUAL);
  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,
      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 resolver
 * @param brightness
 */
public static void saveBrightness(ContentResolver resolver, int brightness) {
  Uri uri = android.provider.Settings.System
      .getUriFor("screen_brightness");
  android.provider.Settings.System.putInt(resolver, "screen_brightness",
      brightness);
  resolver.notifyChange(uri, null);
}

使用SeekBar进行亮度控制:

sSeekBar = (SeekBar) findViewById(R.id.seek_bar);
sSeekBar.setOnSeekBarChangeListener(new OnSeekBarChangeListener() {
  @Override
  public void onStopTrackingTouch(SeekBar seekBar) {
    // TODO Auto-generated method stub
  }
  @Override
  public void onStartTrackingTouch(SeekBar seekBar) {
  }
  @Override
  public void onProgressChanged(SeekBar seekBar, int progress,
      boolean fromUser) {
    if (progress < 10) {
    } else {
      setBrightness(Test2Activity.this, progress);
    }
  }
});
//获取当前亮度的位置
int a =getScreenBrightness(this);
sSeekBar.setProgress(a);

<SeekBar
  android:id="@+id/seek_bar"
  android:layout_width="200dp"
  android:layout_height="wrap_content"
  android:layout_alignParentBottom="true"
  android:max="255"
  android:maxHeight="8dp"
  android:minHeight="8dp"
  android:paddingBottom="5dp"
  android:paddingLeft="13dp"
  android:paddingRight="13dp"
  android:progress="0"
   />

希望本文所述对大家Android程序设计有所帮助。

更多精彩内容其他人还在看

Retrofit2日志拦截器的使用

这篇文章主要介绍了Retrofit2日志拦截器的使用,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
收藏 0 赞 0 分享

Android创建外部lib库及自定义View的图文教程

这篇文章主要给大家介绍了关于Android创建外部lib库及自定义View的相关资料,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
收藏 0 赞 0 分享

Android分享微信小程序失败的一些事小结

这篇文章主要给大家介绍了关于Android分享微信小程序失败一些事,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
收藏 0 赞 0 分享

Android分享微信小程序技巧之图片优化

这篇文章主要给大家介绍了关于Android分享微信小程序技巧之图片优化的相关资料,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
收藏 0 赞 0 分享

Android Viewpager实现无限循环轮播图

这篇文章主要为大家详细介绍了Android Viewpager实现无限循环轮播图,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
收藏 0 赞 0 分享

Android中的Bitmap序列化失败的解决方法

这篇文章主要介绍了Android中的Bitmap序列化失败的解决方法,本文通过实例代码给大家介绍的非常详细,具有一定的参考借鉴价值,需要的朋友可以参考下
收藏 0 赞 0 分享

Android自定义通用标题栏CustomTitleBar

这篇文章主要为大家详细介绍了Android自定义通用标题栏CustomTitleBar,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
收藏 0 赞 0 分享

Android组合控件自定义标题栏

这篇文章主要为大家详细介绍了Android组合控件自定义标题栏,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
收藏 0 赞 0 分享

Android自定义复合控件实现通用标题栏

这篇文章主要为大家详细介绍了Android自定义复合控件实现通用标题栏,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
收藏 0 赞 0 分享

ExpandableListView实现简单二级列表

这篇文章主要为大家详细介绍了ExpandableListView实现简单二级列表,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
收藏 0 赞 0 分享
查看更多