Android之调节手机屏幕亮度

现实生活中,在每个APP中,总会有调节屏幕亮度的需求~

这里是使用SeekBar来调节手机屏幕亮度的,学过手势之后,就可以手势控制亮度了~后面有机会在说~

核心代码如下:

public class MainActivity extends Activity {
	private SeekBar seekBar;

	@Override
	protected void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		setContentView(R.layout.activity_main);
		seekBar = (SeekBar) findViewById(R.id.sb);
		seekBar.setMax(255);
		int normal = Settings.System.getInt(getContentResolver(),
				Settings.System.SCREEN_BRIGHTNESS, 255);
		seekBar.setProgress(normal);
		seekBar.setOnSeekBarChangeListener(new OnSeekBarChangeListener() {

			@Override
			public void onStopTrackingTouch(SeekBar seekBar) {
				// TODO Auto-generated method stub

			}

			@Override
			public void onStartTrackingTouch(SeekBar seekBar) {
				// TODO Auto-generated method stub

			}

			//当Seekbar在滑动的时候,亮度也随着变化
			@Override
			public void onProgressChanged(SeekBar seekBar, int progress,
					boolean fromUser) {
				int tmpInt = progress;
				// 当进度小于80时,设置成80,防止太黑看不见的后果。
				if (tmpInt < 80) {
					tmpInt = 80;
				}

				// 根据当前进度改变亮度
				Settings.System.putInt(getContentResolver(),
						Settings.System.SCREEN_BRIGHTNESS, progress);
				tmpInt = Settings.System.getInt(getContentResolver(),
						Settings.System.SCREEN_BRIGHTNESS, -1);
				WindowManager.LayoutParams wl = getWindow().getAttributes();

				float tmpFloat = (float) tmpInt / 255;
				if (tmpFloat > 0 && tmpFloat <= 1) {
					wl.screenBrightness = tmpFloat;
				}
				getWindow().setAttributes(wl);

			}
		});
	}
}
布局文件就一个SeekBar,就不贴代码了~

需要加权限,因为调节亮度是手机自带的功能

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

源码:http://download.csdn.net/detail/qq_33642117/9585012


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值