您现在的位置: 首页 > 网站导航收录 > 百科知识百科知识
4月4号全国禁娱,各大App是如何实现界面换色的?
界面,都是,控件4月4号全国禁娱,各大App是如何实现界面换色的?
发布时间:2019-02-08加入收藏来源:互联网点击:
回答于 2019-09-11 08:43:50
4月4号为了响应国家的号召,各大互联网公司旗下的产品都出现了禁娱,并且几乎是同一时间各APP里面红红绿绿的图片界面皮肤都变成了灰色。这不禁让我们这些人感叹科技的力量是如此巨大,同时心里也有疑问出现了:“那这个APP是如何实现界面换色的呢?”
4月4号全国禁娱,各大App是如何实现界面换色的?
我是一位编程爱好者,曾经做过移动端开发也做过后台开发。在这里我尽量用最直白的话来说明这其中的原理吧!我觉得想要实现这个换肤的功能,主要压力还是在大后台,说白了我一直认为我们前端并不是万能的,不管是网站,还是安卓APP又或者是iOS端。要实现APP换肤应该是前后端共同努力合作,后端为主的方式最好。
前端最多算的上个显示,一些大的逻辑其实压力都在大后台。比如这次各大APP界面换肤我觉得放到服务器端是最好的,要知道这么大的工作量放在前端是很麻烦的,而且也不够方便,前端去做少量的配置。
我们日常中想要实现某个功能都是需要与大后台交互的,您要告诉服务器你到底想干什么,就拿我们APP注册登录来说吧!APP要实现注册的功能,我们至少要把用户名,密码两参数要传给服务器吧?这2个参数在我们这行可以理解为字段。
然后服务器拿到这个字段会对应后台的用户数据库表并存在数据库中,等您注册完成后下次登录的时候,服务器会去数据库去查询是否存在该用户的信息。
那这次换肤也是可以通过服务器端配置的,你只要告诉服务器换肤就好了,这交互过程跟登录类似,甚至可以在大后台可以把图片都更换成灰色图片。
前端APP也是需要做事情的
对于主流的APP其实也有很多种,比如原生的,混编APP,纯H5页面写的只是套壳打包成安卓包等,但是我认为目前主流的APP都是原生居多,混编APP这几年也是发展得不错,但是不管怎么样都是脱离不了原生这部分。我这里以安卓APP为例子吧!
做过安卓开发得小伙伴应该都知道,一个安卓应用包含得主要文件有 src文件夹、res文件夹,AndroidManifest清单配置文件等。如果想换肤的话,我们项目代码里面 res目录下的所有东西(包括图片文字等资源),几乎都可以被替换。
您可以采用比较主流的换肤方式,比如动态换肤,即运行时的动态加载皮肤包。控件初始化后可以动态的使用皮肤包中资源。还有一种用的比较多的是在app里面固定几种皮肤样式内嵌到我们的APP里面,随着APP一起发布。当然最主要的还是通过一个接口调用实现一键换肤,包括换掉全部app范围内的所有资源文件的替换,包括文本,颜色,图片等。
目前我们公司用的是一键换肤也用了第三方框架换肤,这里面涉及到hook一键换肤,关于这点您可以上网多去查下。在安卓中,显示界面皮肤往往跟系统的view控件有关系。这个hook思路就是涉及到通过胁持系统的view,您要去看这方面的源代码,然后配合自定义view去实现。如果感兴趣的话可以关注我,日后一起交流技术问题。
总结:
我认为各大APP实现换肤是通过前后端交互就可以实现了的,服务器都可以进行配置。如果完全要前端去处理那工作量都是很大的,比如拿今日头条这个APP来说吧,如果全部交给前端APP那不知道要等到什么时候才能换肤完,那么多界面那么多配置文件的。您赞同我的观点吗?或者您有什么要补充的吗?
感谢您的阅读,码字不易,如果我的回答对您有帮助,记得给我点个赞和关注哦!小胖每天为您放送科技资讯!
回答于 2019-09-11 08:43:50
您好,我是做开发的,猜测楼主肯定不是做这方面工作的,在我看来,APP里面只要加一行代码就可以改变全局色彩,网页的话也是加一行代码就行了,昨天唯独古老的IE浏览器没有受到任何影响
回答于 2019-09-11 08:43:50
各大App界面换色不是什么难题,难的是短时间内就能实现界面变化。通常能做到这点的都是混合应用,管理后端通过设定将新配置应用到客户端,而这对程序员来说也是很高效的一种方式。
回答于 2019-09-11 08:43:50
APP如何根据用户的手机壳来改变APP主题颜色?
接受到一个需求,要求APP开发人员可以做到,APP根据用户的手机壳来改变APP主题颜色。请问如何实现
?我们想模仿网易新闻做夜间模式
我们现在业务涉及到要换的有 字的颜色,某些背景色,部分Button的背景色及点击效果色,部分icon,系统亮度
关于这些业务的实现,我有几个问题。
现在需要美工出2套,一个是day,一个是night的图片是吗?如何命名呢,用区分 day_ night_ 这些来区分加载吗?
字的颜色换是通过style来控制么? Button是通过维护2套drawable的selector来管理吗?
比较没思路的问题是:
1. 如何通知各个Activity 我切换到了夜间模式
2. 在onResume()里面写代码 进行皮肤替换吗? 那我当前所在的 设置夜间模式的页面,如何立刻更换的。另外跳转到其他的Activity,数据并没有刷新,皮肤也换了,如何解决?
上一篇:高三党起床困难怎么办?
下一篇:返回列表
相关链接 |
||
网友回复(共有 0 条回复) |