Android(安卓)屏幕常亮N秒后自动暗屏
16lz
2021-01-26
Android,在用户不操作的情况下,定时使屏幕变暗,体验会很好。直接看代码吧。
// 最大的屏幕亮度 private float maxLight;// 当前的亮度 private float currentLight;// 用来控制屏幕亮度 private Handler lightHandler; // 60秒时间不点击屏幕,屏幕变暗 private long delayTime = 60 * 1000L; protected void onCreate() {// 保持屏幕常亮getWindow().setFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON,WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON);// 屏幕亮度控制lightHandler = new Handler(Looper.getMainLooper()); maxLight = getLightness(); }@Override public boolean dispatchTouchEvent(MotionEvent ev) {if (currentLight == 1) {startSleepTask();return false;} startSleepTask(); return super.dispatchTouchEvent(ev); }/** * 获取亮度 */ private float getLightness() { WindowManager.LayoutParams localLayoutParams = this.getWindow().getAttributes(); return localLayoutParams.screenBrightness; } /** * 设置亮度 */ private void setLightness(int light) { currentLight = light; WindowManager.LayoutParams localLayoutParams = this.getWindow().getAttributes(); localLayoutParams.screenBrightness = (light / 255.0F); this.getWindow().setAttributes(localLayoutParams); }/** * 开启休眠任务 */ private void startSleepTask() { setLightness((int) maxLight); stopSleepTask(); lightHandler.postDelayed(sleepWindowTask, delayTime); } /** * 结束休眠任务 */ private void stopSleepTask() { lightHandler.removeCallbacks(sleepWindowTask); } /** * 休眠任务 */ Runnable sleepWindowTask = new Runnable() { @Override public void run() { setLightness(1); } };
更多相关文章
- android UI效果三: 滚动切换屏幕
- android 状态栏、标题栏、屏幕高度
- 关于调节亮度在小米手机上异常的情况
- Android(安卓)开发有用代码积累
- android获取自定义控件位置坐标,屏幕尺寸,标题栏,状态栏高度
- wakelock的使用
- 【Android】 textview 中超出屏幕宽度的字符 省略号显示
- 今日头条屏幕适配_工具类
- Android屏幕内容制作成GIF图方式