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"
         />

您想快速达成您的目标和实现梦想吗?请加QQ:673220883 每天为您提供了大量励志,视频,销售,管理等-经典文章,免费学习。此QQ空间已改变了千万人的命运。陈安之和您一起开始您的梦想之旅!

 

精彩分享: 如果你现在没有目标,对未来很迷茫、来看下

精彩分享: 俞洪敏:一辈子只做一件事 不要想太多 

精彩分享: 男人的这一百个秘密,我不说你一辈子也不可能知道!

精彩分享: 人临终前最遗憾的25件事,别让这些遗憾 变成你的遗憾

精彩分享: 6个步骤,助你打破聊天尴尬局面,推荐阅读
精彩分享:  告诉自己我可以输,但我绝不放弃
精彩分享: 业务高手不想让别人知道的沟通秘籍
精彩分享: 陈安之教你三十岁前如何挣到五百万,不管男女都花上几分钟进来看完
精彩分享: 乔布斯,不为人知的故事!斯坦福大学演讲
精彩分享: 拖延等于死亡---改变千万人生的一堂课!
精彩分享: 为什么你是一个有才华的穷人?让你受益终身的文章!
精彩分享: 人生就像一杯茶,不会哭一辈子,但总会一阵子!


你可能感兴趣的:(exception,android,api,layout,null)