Android护眼模式、屏幕亮度调节功能开发【基于Android8.0】

【引言】网上关于写护眼模式,屏幕亮度调节的android的方法很少,找到的都不能很好的适配Android8.0的版本。于是自己查了很多api文档,研究了一下方法。

【功能实现】就像很多护眼模式的app一样,都是基于开启悬浮窗的方法。相当于弄一个全屏的,半透明的黄色的 悬浮窗遮罩。

我们需要把屏幕亮度调节的做成服务,为了防止后台服务被系统kil,还是弄成前台服务为好。

首先获取windowmanager

mWindowManager = (WindowManager) mContext.getSystemService(Context.WINDOW_SERVICE);

然后设置类型

final WindowManager.LayoutParams params = new WindowManager.LayoutParams();
params.type = WindowManager.LayoutParams.TYPE_SYSTEM_OVERLAY;

设置flag

int flag=WindowManager.LayoutParams.FLAG_NOT_TOUCH_MODAL| WindowManager.LayoutParams.FLAG_FULLSCREEN|WindowManager.LayoutParams.FLAG_NOT_TOUCHABLE;

 这个参数可以把触摸事件传递到后面去

设置遮罩

params.format = PixelFormat.TRANSLUCENT;

覆盖导航栏

WindowManager mWindowManager= (WindowManager) context.getSystemService(context.WINDOW_SERVICE); Display display = mWindowManager.getDefaultDisplay(); Point p = new Point(); display.getRealSize(p); params.width = p.x; params.height = p.y;

 在服务里面设置前台

startForeground(1, builder);

再添加一个颜色选择器,就完成了。(比如使用ColorPickerDialog)

最后效果

 Android护眼模式、屏幕亮度调节功能开发【基于Android8.0】_第1张图片

整体添加了一层黄色的遮罩,相当于过滤蓝光。

更多相关文章

  1. 中介者模式下的Android底部导航栏
  2. 观察者模式在android 上的最佳实践
  3. Android也架构之三:简单工厂模式优化网络请求
  4. Android安全模式
  5. [实践] Android5.1.1源码 - 让某个APP以解释执行模式运行
  6. Android之屏幕适配
  7. Android官方开发中心之Web Apps屏幕适配
  8. Android X86强制竖屏怎么办?安卓(Android)x86屏幕旋转成横屏解决
  9. Android和设计模式:单例模式

随机推荐

  1. Android(安卓)内存泄漏调试
  2. Android中Input型输入设备驱动原理分析(
  3. Android操作HTTP实现与服务器通信
  4. 如何获取Android源码
  5. Android开发手记一 NDK编程实例
  6. 多媒体文件信息
  7. android五种布局-霓虹灯效果实现
  8. Android(安卓)自定义View——自定义View
  9. Android项目开发完成以后就要将android项
  10. Android排版和POI