Android获取并设置Activity的亮度
Android获取并设置Activity的亮度
此API只适合Android 2.1以上版本:
[java]
- /**
- * 判断是否开启了自动亮度调节
- *
- * @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);
- }
[java]
- 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"
- />
评论暂时关闭