android屏幕亮度设置两种方式

在当前的一些设置系统亮度的文章中一般的情况都说了一些如何来设置亮度的方式,但是从根本上,要让这个功能跑起来,还需要注意一些东西。

首先系统有自动亮度这个设置的,需要先将自动模式改动成手动模式,才可以调取到系统的设置。

那么话不多说,各位应该都知道一般的情况解决了,直接上代码吧:


/**
 * 设置当前页面的亮度
 * @param context
 * @param brightness
 */
private void setLight(Activity context, int brightness) {
    WindowManager.LayoutParams lp = context.getWindow().getAttributes();
    lp.screenBrightness = Float.valueOf(brightness) * (1f / 255f);
    context.getWindow().setAttributes(lp);
}


/**
 * 设置成系统的亮度
 * @param activity
 * @param brightness
 */
public void saveBrightness(Activity activity, int brightness) {
    //先需要改变成手动的模式才能进行亮度设置
    setBrightnessMode(activity,Settings.System.SCREEN_BRIGHTNESS_MODE_MANUAL);

    ContentResolver contentResolver = activity.getContentResolver();
    Uri uri = Settings.System.getUriFor(Settings.System.SCREEN_BRIGHTNESS);
    Settings.System.putInt(contentResolver, Settings.System.SCREEN_BRIGHTNESS, brightness);
    activity.getContentResolver().notifyChange(uri, null);
}

/**
 * 设置当前屏幕亮度的模式
 * SCREEN_BRIGHTNESS_MODE_AUTOMATIC=1 为自动调节屏幕亮度
 * SCREEN_BRIGHTNESS_MODE_MANUAL=0 为手动调节屏幕亮度
 */
public static void setBrightnessMode(Activity activity, int brightMode) {
    Settings.System.putInt(activity.getContentResolver(), Settings.System.SCREEN_BRIGHTNESS_MODE, brightMode);
}

一般在调用,往系统中国写配置的时候,就应该先设置一下手动亮度

同时别忘了,在权限表里面添加一个权限:

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

that's all , thx!

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值