夜间模式切换方案

洗洗敲代码吧 2014-07-24 09:46:21
多日对网易新闻夜间模式的切换的研究都未出结果,不到最后时刻实在是不想通过一个个修改组件颜色。
使用过的方案
通过修改theme--------------------------------
这个方法是可以修改主题,把背景编程黑色。。。缺陷就是setTheme()以后需要重新setContentView或者重启Activity才能生效。。不知道大家发现没有。这样导致我activity中的内容需要重新加载initView了,界面就刷新了。但是看到网易新闻的效果切换以后页面除了变黑之外没有发生任何变化。。实在是研究不透。。求各路大神提出夜间模式方案。。
...全文
618 13 打赏 收藏 转发到动态 举报
写回复
用AI写文章
13 条回复
切换为时间正序
请发表友善的回复…
发表回复
风雪飞舞 2015-10-19
  • 打赏
  • 举报
回复
楼主楼主,你的仿网易的模式切换出来没有啊? 可不可以给个demo 小弟也愚见了这个问题 百思不得骑姐啊
天天就是搬砖 2015-05-04
  • 打赏
  • 举报
回复
请问楼主最后是如何解决夜间模式的切换问题的
洗洗敲代码吧 2014-07-25
  • 打赏
  • 举报
回复
引用 7 楼 birdsaction 的回复:
可以不用Theme的方式, 可以定义一个全局的配置,设置不同的颜色作为动态模式,通过代码直接修改字体颜色和背景颜色,网易很多组件都是自定义的复写控件。 当点击夜间模式 就直接修改VIEW的背景颜色和字体。
额???这个设置全局配置指的是???不太理解?通过什么方式??
Birds2018 2014-07-25
  • 打赏
  • 举报
回复
可以不用Theme的方式, 可以定义一个全局的配置,设置不同的颜色作为动态模式,通过代码直接修改字体颜色和背景颜色,网易很多组件都是自定义的复写控件。 当点击夜间模式 就直接修改VIEW的背景颜色和字体。
洗洗敲代码吧 2014-07-25
  • 打赏
  • 举报
回复
引用 5 楼 hjywyj 的回复:
夜间模式的几种实现方案: 1.给最外层加个半透明的遮罩层,达到夜间模式的效果(很早之前网易新闻就是这么实现的) 2.保存下数据然后调用setTheme,刷新Activity(糗百实现方法) 3.直接修改View的background,src,textcolor等达到夜间模式的效果(现在网易新闻貌似就是这么弄得)
前两个不适用,第三个是可以,不过感觉很麻烦,不到最好不是很想用这个。。就好像网易新闻那个viewpager里有一个一个的fragment。fragment有listview,activity里怎么怎么获取到viewpager中fragment中的listview呢??然后才能给它设置背景颜色吧??感觉效果是可以的,就是实现起来有的问题
  • 打赏
  • 举报
回复
夜间模式的几种实现方案: 1.给最外层加个半透明的遮罩层,达到夜间模式的效果(很早之前网易新闻就是这么实现的) 2.保存下数据然后调用setTheme,刷新Activity(糗百实现方法) 3.直接修改View的background,src,textcolor等达到夜间模式的效果(现在网易新闻貌似就是这么弄得)
媒体盒子 2014-07-25
  • 打赏
  • 举报
回复
反编译搜狐新闻客户端,看下它这块怎么实现的
洗洗敲代码吧 2014-07-25
  • 打赏
  • 举报
回复
引用 9 楼 birdsaction 的回复:
简单的说无非是 修改字体颜色,背景颜色。 setBackground setColor 你点黑夜模式时 设置统一设置一下颜色,点白天模式时再设置另外一种颜色。 自定义下组件 用invalidate()重绘图形组件。
我用个比较笨的方法,就是把需要改的view放到放到方法day()和night()里。。按钮触发后,根据切换的模式调用不同的方法修改。是这样么???你说的那个invalidate()不太会用。哈哈。。。需要看哪方面的知识么??
lionfresh 2014-07-25
  • 打赏
  • 举报
回复
引用 5 楼 hjywyj 的回复:
夜间模式的几种实现方案: 1.给最外层加个半透明的遮罩层,达到夜间模式的效果(很早之前网易新闻就是这么实现的) 2.保存下数据然后调用setTheme,刷新Activity(糗百实现方法) 3.直接修改View的background,src,textcolor等达到夜间模式的效果(现在网易新闻貌似就是这么弄得)
学习了
Birds2018 2014-07-25
  • 打赏
  • 举报
回复
简单的说无非是 修改字体颜色,背景颜色。 setBackground setColor 你点黑夜模式时 设置统一设置一下颜色,点白天模式时再设置另外一种颜色。 自定义下组件 用invalidate()重绘图形组件。
洗洗敲代码吧 2014-07-24
  • 打赏
  • 举报
回复
引用 2 楼 han1202012 的回复:
可不可以 保存现有Activity数据 然后 加载 不同的布局文件, 找到一个更换布局的方案 在每个Activity 创建的时候 判断是什么模式, 然后加载相应的布局文件 ;
不行啊。你重新加载布局界面肯定会刷新的啊???我的目的切换模式后界面数据不刷新。。
韩曙亮 2014-07-24
  • 打赏
  • 举报
回复
可不可以 保存现有Activity数据 然后 加载 不同的布局文件, 找到一个更换布局的方案 在每个Activity 创建的时候 判断是什么模式, 然后加载相应的布局文件 ;
洗洗敲代码吧 2014-07-24
  • 打赏
  • 举报
回复
先给自己顶个,路过大神提下方案啊。。路过不能错过啊!!
用于床头柜的紧凑型闹钟,带有时间,日期,天气,新闻...以及令人放松的声音,可唤醒您。 硬件组件: Raspberry Pi 3模型B×1个 Adafruit PiTFT 3.5英寸触摸屏×1个 Adafruit PiTFT 3.5英寸加×1个 Adafruit PiTFT Pibow +套件×1个 带有USB充电线的通用蓝牙扬声器×1个 软件应用程序和在线服务: 树莓派Raspbian 我觉得我并不是唯一一个想要像这样的漂亮而简单的物件放在床头柜上的人。 它具有有用的功能,例如柔和的唤醒(带有蓝牙扬声器的鸣叫声),白天和黑夜,天气,新闻的信息和亮度更改设置。睡眠期间WiFi处于关闭状态。都非常可定制! 它主要基于漂亮的MagicMirror项目,但是在这种情况下,我们将其与一个小屏幕一起使用以显示所需的信息,而无需将所有内容隐藏在镜子后面。 如果您稍微了解MagicMirror,就会知道要安装不同的模块,以提供不同种类的功能。对于我的项目,我使用了: 时钟(默认时钟) MMM-AlarmClock(我们想要一个闹钟,对吧?) CurrentWeather(默认模块) WeatherForecast(也是默认值) NewsFeed(默认) MMM在线状态(检查WiFi是否打开或关闭) MMM-Tado(嗯,如果您有智能恒温器,则可以显示环境信息) 然后我认为cron是在一天中对一些事件进行编程的便捷工具。我将在下面显示我的crontab 。 现在让我们看一下我的屏幕(日版): 现在让我们来看一下夜间版本: 看到了区别吗?如果我凌晨3点醒来,我不需要太多信息:时钟就足够了!另外,可以打开/关闭WiFi的指示也可以(例如,我将打开符号设置为黄色,将关闭符号设置为蓝色)。

80,348

社区成员

发帖
与我相关
我的任务
社区描述
移动平台 Android
androidandroid-studioandroidx 技术论坛(原bbs)
社区管理员
  • Android
  • yechaoa
  • 失落夏天
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧