Adnroid屏幕亮度调节——设置到指定的值与恢复到原来的值
2013-03-15 15:55
741 查看
应用场景:手机上有一张条形码图片,需要用扫码设备扫描。当手机屏幕太暗时,识别度低,因此我就想当切换到条形码图片所在的界面时,调亮屏幕方便扫码设备识别。当离开该界面时恢复用户原来设置的屏幕亮度调节模式和屏幕亮度值。
一、存储当前屏幕亮度调节模式值和屏幕亮度值:
二、改变当前屏幕亮度调节模式值和屏幕亮度值:
三、离开时恢复当前屏幕亮度调节模式值和屏幕亮度值:
四、所需权限:
五、完整代码:
一、存储当前屏幕亮度调节模式值和屏幕亮度值:
/* * 获得当前屏幕亮度的模式 * SCREEN_BRIGHTNESS_MODE_AUTOMATIC=1 为自动调节屏幕亮度 * SCREEN_BRIGHTNESS_MODE_MANUAL=0 为手动调节屏幕亮度 */ screenMode = Settings.System.getInt(getContentResolver(), Settings.System.SCREEN_BRIGHTNESS_MODE); Log.i(TAG, "screenMode = " + screenMode); // 获得当前屏幕亮度值 0--255 screenBrightness = Settings.System.getInt(getContentResolver(), Settings.System.SCREEN_BRIGHTNESS); Log.i(TAG, "screenBrightness = " + screenBrightness);
二、改变当前屏幕亮度调节模式值和屏幕亮度值:
// 如果当前的屏幕亮度调节调节模式为自动调节,则改为手动调节屏幕亮度 if(screenMode == Settings.System.SCREEN_BRIGHTNESS_MODE_AUTOMATIC){ setScreenMode(Settings.System.SCREEN_BRIGHTNESS_MODE_MANUAL); } // 设置屏幕亮度值为最大值255 setScreenBrightness(255.0F);
三、离开时恢复当前屏幕亮度调节模式值和屏幕亮度值:
// 设置屏幕亮度值为原来的 setScreenBrightness(screenBrightness); // 设置当前屏幕亮度的模式 为原来的 setScreenMode(screenMode);
四、所需权限:
<uses-permission android:name="android.permission.WRITE_SETTINGS"/>
五、完整代码:
package com.easipass.setting.screen.luminance; import android.app.Activity; import android.os.Bundle; import android.provider.Settings; import android.provider.Settings.SettingNotFoundException; import android.util.Log; import android.view.View; import android.view.Window; import android.view.WindowManager; /** * 功能描述:设置与恢复当前的屏幕亮度调节模式和屏幕亮度值 * * @author android_ls */ public class SettingScreenLuminanceActivity extends Activity { private static final String TAG = "ScreenLuminance"; /** * 当前屏幕亮度的模式 */ private int screenMode; /** * 当前屏幕亮度值 0--255 */ private int screenBrightness; @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); // 调亮屏幕到指定的值 super.findViewById(R.id.button1).setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { try { /* * 获得当前屏幕亮度的模式 * SCREEN_BRIGHTNESS_MODE_AUTOMATIC=1 为自动调节屏幕亮度 * SCREEN_BRIGHTNESS_MODE_MANUAL=0 为手动调节屏幕亮度 */ screenMode = Settings.System.getInt(getContentResolver(), Settings.System.SCREEN_BRIGHTNESS_MODE); Log.i(TAG, "screenMode = " + screenMode); // 获得当前屏幕亮度值 0--255 screenBrightness = Settings.System.getInt(getContentResolver(), Settings.System.SCREEN_BRIGHTNESS); Log.i(TAG, "screenBrightness = " + screenBrightness); // 如果当前的屏幕亮度调节调节模式为自动调节,则改为手动调节屏幕亮度 if (screenMode == Settings.System.SCREEN_BRIGHTNESS_MODE_AUTOMATIC) { setScreenMode(Settings.System.SCREEN_BRIGHTNESS_MODE_MANUAL); } // 设置屏幕亮度值为最大值255 setScreenBrightness(255.0F); } catch (SettingNotFoundException e) { // TODO Auto-generated catch block e.printStackTrace(); } } }); // 恢复原来的亮度 super.findViewById(R.id.button2).setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { // 设置屏幕亮度值为原来的 setScreenBrightness(screenBrightness); // 设置当前屏幕亮度的模式 为原来的 setScreenMode(screenMode); } }); } /** * 设置当前屏幕亮度的模式 * SCREEN_BRIGHTNESS_MODE_AUTOMATIC=1 为自动调节屏幕亮度 * SCREEN_BRIGHTNESS_MODE_MANUAL=0 为手动调节屏幕亮度 */ private void setScreenMode(int value) { Settings.System.putInt(getContentResolver(), Settings.System.SCREEN_BRIGHTNESS_MODE, value); } /** * 设置当前屏幕亮度值 0--255,并使之生效 */ private void setScreenBrightness(float value) { Window mWindow = getWindow(); WindowManager.LayoutParams mParams = mWindow.getAttributes(); float f = value / 255.0F; mParams.screenBrightness = f; mWindow.setAttributes(mParams); // 保存设置的屏幕亮度值 Settings.System.putInt(getContentResolver(), Settings.System.SCREEN_BRIGHTNESS, (int) value); } }
相关文章推荐
- android 如何设置屏幕亮度默认值为自动调节
- android 如何设置屏幕亮度默认值为自动调节
- android 如何设置开机后屏幕亮度默认值为自动调节
- 设置屏幕亮度默认值为自动调节
- ubuntu12.04屏幕亮度调节设置方法
- Android调节屏幕亮度、系统音量、wifi、bluetooth、振动等常用设置的整合demo
- samsung ubuntu12.04屏幕亮度调节设置
- [4750G] Ubuntu硬件优化篇——引导修复双显卡及屏幕亮度调节设置 bumblebee
- Android-设置屏幕亮度默认为自动调节
- Android 当前Activity调节屏幕亮度
- Android设置屏幕亮度
- Android_调节屏幕亮度(背景灯)及保持背景灯常亮的方法
- 如何设置屏幕的亮度?
- 解决 Ubuntu 14.04 无法调节屏幕亮度的问题
- android 设置系统屏幕亮度
- Android:调节屏幕亮度
- Ubuntu开机自动设置笔记本屏幕亮度
- ubuntu的xfce4桌面环境下不能键盘快捷键调节屏幕亮度的问题
- ubuntu 亮度 调节 按一次按键跳两次的问题,以及系统自动设置初始亮度
- Android设置屏幕亮度