Android 小说阅读护眼模式

实现方案:采用全局dialog 覆盖APP  悬浮在 其他APP之上,给dialog设置护眼色值

自定义护眼模式dialog

public class EyeProtectionDialog extends Dialog {

ImageView iv;

public EyeProtectionDialog(@NonNull Context context) {

super(context, R.style.eye_style);

requestWindowFeature(Window.FEATURE_NO_TITLE);

Window window = this.getWindow();

WindowManager.LayoutParams lp = window.getAttributes();

window.getDecorView().setPadding(0, 0, 0, 0);

lp.width = WindowManager.LayoutParams.MATCH_PARENT;

lp.height = WindowManager.LayoutParams.MATCH_PARENT;

lp.flags = WindowManager.LayoutParams.FLAG_FULLSCREEN | WindowManager.LayoutParams.FLAG_LAYOUT_IN_SCREEN

| WindowManager.LayoutParams.FLAG_NOT_TOUCH_MODAL |

WindowManager.LayoutParams.FLAG_NOT_FOCUSABLE | WindowManager.LayoutParams.FLAG_NOT_TOUCHABLE; //设置不影响下层的触碰

if (Build.VERSION.SDK_INT >= 26) {

lp.type = WindowManager.LayoutParams.TYPE_APPLICATION_OVERLAY;

} else {

lp.type = WindowManager.LayoutParams.TYPE_SYSTEM_OVERLAY;

}

window.setAttributes(lp);

window.setLayout(WindowManager.LayoutParams.MATCH_PARENT, WindowManager.LayoutParams.MATCH_PARENT);

}

@Override

protected void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

setContentView(R.layout.eye_layout);

iv = findViewById(R.id.iv_eye);

}

@Override

public void show() {

super.show();

if (iv != null) {

iv.setBackgroundColor(getColor(30));

}

}

/**

* 设置护眼色

* @param blueFilterPercent

* @return

*/

public @ColorInt

int getColor(int blueFilterPercent) {

int realFilter = blueFilterPercent;

if (realFilter < 10) {

realFilter = 10;

} else if (realFilter > 80) {

realFilter = 80;

}

int a = (int) (realFilter / 80f * 180);

int r = (int) (200 - (realFilter / 80f) * 190);

int g = (int) (180 - (realFilter / 80f) * 170);

int b = (int) (60 - realFilter / 80f * 60);

return Color.argb(a, r, g, b);

}

}

dialog-style

eye_layout

权限以及展示

public void permission() {

if (Build.VERSION.SDK_INT >= 23) {

if (!Settings.canDrawOverlays(getContext())) {

Uri packageURI = Uri.parse("package:" + ReaderApplication.getInstance().getPackageName());

Intent intent = new Intent(Settings.ACTION_MANAGE_OVERLAY_PERMISSION, packageURI);

startActivity(intent);

} else {

EyeProtectionDialog eyeProtectionDialog = new EyeProtectionDialog(getContext());

eyeProtectionDialog.show();

}

} else {

EyeProtectionDialog eyeProtectionDialog = new EyeProtectionDialog(getContext());

eyeProtectionDialog.show();

}

}

android项目小说阅读开发背景颜色,Android 小说阅读护眼模式相关推荐

  1. Android护眼模式功能小记

    最近自己在做一个小说阅读器,看到某阅有护眼模式功能,别人都有,我怎么能没有? 现在这功能已经不稀奇了,很多手机都带有这个功能. 实现起来不难,用一个蒙版遮在界面上面就行. 至于蒙版,可以用Window ...

  2. Android 实现护眼模式

    一.背景 在阅读软件或者儿童软件都需要护眼模式来降低蓝光的辐射. 二.实现方案 首先在每个activity创建的时候在最上层添加一层view,去掉点击事件. 用sp或者mmkv来存储当前是否打开护眼模 ...

  3. android反射调用护眼模式

    android 11反射调用护眼模式/夜间模式 Android 10 推出了 COLOR_DISPLAY_SERVICE 系统服务,具备系统 API 接口,使系统."设置"和系统界 ...

  4. Word 2016 怎么设置护眼模式 页面颜色设置

    操作方法: 首先我们在菜单栏中,点击上方的[设计]>[页面颜色],在里面选择[其他颜色]. 绿豆沙 #C7EDCC RGB(199, 237, 204) 银河白 #FFFFFF RGB(255, ...

  5. 总结android项目的基本开发步骤(转帖)

    总结android项目的基本开发步骤(转帖) 做了几个android企业应用项目后,总结了项目的基本开发步骤,希望能够交流. 一 应用规划:     ※确定功能.     ※必须的界面及界面跳转的流程 ...

  6. Android 小说阅读护眼模式

    Android 小说阅读护眼模式 实现方案:采用全局dialog 覆盖APP  悬浮在 其他APP之上,给dialog设置护眼色值 自定义护眼模式dialog public class EyeProt ...

  7. Android项目驱动式开发教程 第2版,《Android项目驱动式开发教程》第一章开发入门.ppt...

    <Android项目驱动式开发教程>第一章开发入门 1.4 项目框架分析 4 android:versionName="1.0" > 5 8 第9行代码andro ...

  8. android textview获取背景颜色,Android TextView背景颜色与背景图片设置

    Android TextView 背景颜色与背景图片设置,android textview 控件,android textview 背景, android textview 图片,android te ...

  9. android按钮背景颜色函数,Android按钮背景颜色(Android button background color)

    Android按钮背景颜色(Android button background color) 我想在我的应用程序中设置按钮的背景颜色,我无法实现我想要的结果... 我试图设置的颜色是holo_gree ...

最新文章

  1. Python: Monitoring a Directory
  2. 元宇宙iwemeta: 北交所开创,资本市场服务创新型中小企业掀开新篇章,上市企业小盘点
  3. IT从业者(程序员等)之强身健体-武术
  4. 学习TensorFlow、PyTorch、机器学习、深度学习和数据结构五件套!附下载链接!...
  5. 在Word中插入条形码又一法
  6. java基础--网络编程
  7. 异步通信在生活中的例子_聊聊工作中经常遇到的“异步”,你掌握了多少
  8. ms查约束具体代码_ECCV 2020附代码论文合集(CNN,图像分割)
  9. webpack打包生成的dist文件如何运行
  10. C语言-ATT拓展内联汇编(ATT/GCC)
  11. 失败原因【object object】_使用前端框架Vue的原因!
  12. PostgreSQL“ DESCRIBE TABLE”
  13. tensorflow精进之路(二十)——使用slim模型库训练自己的数据
  14. 上岸后如何选择一个好的导师
  15. spass是Java吗_Java SpassFingerprint类代码示例
  16. python链表的实例_python数据结构链表之单向链表(实例讲解)
  17. 火山引擎举办视频云科技原力峰会,发布面向体验的全新视频云产品矩阵
  18. priority的用法
  19. 会写代码的CTO曹艳白曹总,智核创投创始人,给搜房贡献的第一个大数据方面的专利...
  20. Rush rush 。◕.◕。

热门文章

  1. 激光雷达相关技术方案介绍
  2. Qt 实现按钮点击切换按钮图片
  3. Java 版spark Streaming 维护kafka 的偏移量
  4. 用python画微笑脸表情_python画表情包
  5. 中国联通沃云----弹性块存储使用说明
  6. 基于安卓的校园二手跳蚤市场APP设计与实现.rar(项目源码+论文)
  7. ROS可以不扫描地图,自己制作地图
  8. windows编译 zlib
  9. PTA基础编程题目集1-6题答案
  10. 卡特加特数字家庭又爆重磅合作!厦门火炬创投莅临卡特加特考察