当前位置:首页 > 建站优化 > 正文内容

4月4号全国禁娱,各大App是如何实现界面换色的?

zhuangbi888.com2021-04-10 19:30建站优化153

你好,曾经做过一段时间的安卓开发,我来回答这个问题。

为表达对抗击新冠肺炎疫情牺牲烈士和逝世同胞的深切哀悼,今天很多主流的App都统一换装为灰色以示庄重,虽然这些App的功能和界面千差万别,但是其由彩色变灰色的原理都是一样的。不过要解释其中的技术原理,就得补充一点主流的App开发模式的知识,下面我先简单介绍下三种主流的开发模式,然后讲一下三种开发模式的App分别如何实现界面变灰色。

App开发的三种主流模式:Native APP、Web APP、Hybrid APP目前主流的App的开发模式可以分为三类:Native APP、Web APP和Hybrid APP,其中Hybrid APP是业界主流,三种开发模式各有优缺点,所面向的应用场景各有不同。

(1)Native APP

Native APP也叫原生App开发,是指开发者使用官方提供的编程语言、JDK、开发工具进行App开发,比如Android应用就采用Java语言使用谷歌提供的开发工具Android studio(早期也支持Eclipse作为IDE工具,后来谷歌不再支持)来开发,IOS应用就采用Objective-C语言使用苹果的开发工具Xcode来开发。

Native APP开发的优点是App运行流畅、可以调用手机所有能力、兼容性好,但是缺点也很明显,那就是开发周期比较长,成本高,可移植性差,同样功能的App需要在Android和IOS上各自开发和维护。

(2)Web APP

Web App开发类似于开发网页,使用的都是纯Web技术,比如HTML5、JavaScript、CSS等,开发完的App需要浏览器的支持才能进行展示和用户交互。Web App的优点是跨平台(一套代码可以同时在Android、IOS、Windows上运行)、开发成本低周期短、格式丰富,特别适合新闻类的App。其缺点是开发出的App无法离线使用、功能有限(Web技术无法访问设备的硬件)、APP反应速度慢。

(3)Hybrid APP

Hybrid APP也叫混合App开发或者融合App开发,是Native APP和Web APP模式的结合,算是一种取长补短的开发模式,使用安卓原生控件或者其他框架为HTML5提供容器,具体的界面展示和业务呈现由Web技术来实现。即HTML5云网站+APP应用客户端。目前主流的App,如今日头条、淘宝、京东、拼多多等都是采用混合开发模式。

Hybrid APP开发模式的优点是开发效率高、同一套代码Android和IOS基本上都可使用、更新和部署比较方便、可以实现的功能多、支持离线运行。其缺点是所有内容都是固定的导致不能换界面或增加功能、加载缓慢、安全性比较低,对开发人员的技能要求比较高,为了解决这些问题,字节跳动和阿里巴巴投入了大量的技术资源来优化App的流畅性和安全性。

Native APP如何实现界面变灰?

在Native APP开发模式中,所有的控件都是采用安卓原生的,以你提问时发的这张图为例,这张界面其实是一个Activity控件结合ViewPager 、Fragment控件来实现的,Fragment控件里面又嵌入了Imageview。其中Activity负责主框架,ViewPager 、Fragment用来实现内容动态加载和刷新,而Imageview负责展示具体的图片。

以图片变灰为例,解释下程序员具体怎么做。为了实现图片变灰,最简单的办法就是直接通过ImageView调用安卓系统的setColorFilter方法来实现,也可以创建一个ColorFilter ,然后把它设置给ImageView,原理都一样。

参考代码:ImageView.setColorFilter(Color.GRAY, PorterDuff.Mode.MULTIPLY);

其中ImageView代表某张图片,setColorFilter代表安卓提供的处理图片的接口,Color.GRAY代表把图片转换为灰度图片。

除了图片以外,整个App界面都是由类似ImageView的控件组成的,如图所示,在Android里面,如果要展示文字,程序员会创建TextView;如果想播放视频,那么程序员就会创建一个Surfaceview ,每个控件都可以单独控制其背景颜色,开发人员只需要对控件进行处理即可,这里不再赘述。

Web APP如何实现界面变灰?Web App实现界面变灰实现起来更简单,App界面中的展示的内容都对应着HTML5的元素,比如<img>标签就代表图片,想将Web页面的图片变为灰色的方法有很多,通过CSS、JavaScript都可以做到,以CSS为例,对<img>标签做如下CSS处理即可:

img {-webkit-filter: grayscale(1);filter: gray;filter: grayscale(1);}

同样的,这里以比较常见的图片变灰为例,在Web App界面中所有的元素都跟<img>一样,对应着HTML5中的某类标签,开发者如果想改某种元素的显示效果,直接在其对应的CSS文件中修改其属性即可。Hybrid APP如何实现界面变灰?Hybrid APP并非新的事物,只不过是融合了Native APP和Web APP各自的优点而已,所以想控制Hybrid APP界面变灰,只需要看想变灰的部分是由原生安卓控件来实现的还是由Web技术来实现的,然后按照上面介绍的方法对应处理即可。

总而言之,无论是Native APP、Web APP还是Hybrid APP,用户界面的背后都对应着安卓原生的控件或者HTML5的元素,想改变界面的显示效果,只需要找对控件,然后按照控件所支持的方法进行设置即可。这些在开发人员眼里并非难事,对于没有软件开发背景的朋友来说,需要一定时间来消化。希望我的回答有帮到你。

相关文章

不做百度推广网站关键词被屏蔽(百度搜索引擎无广告)

不做百度推广网站关键词被屏蔽(百度搜索引擎无广告)

当网站设计完成后,网站上线前我们应该给网站做一个基本的测试,主要是看看网站还有没有什么问题。如果不给网站做测试就上线,就有可能出现问题,直接导致网站在搜索引擎的排名。那么,给网站测试,你该关注哪些指标...

如何提升网站性能(如何测试网站性能)

如何提升网站性能(如何测试网站性能)

关于这个问题,可以从服务端/网站建设方和客户端/用户方两个方面考虑: 服务端/网站建设方如果您是网站的建设方,可以考虑但不局限于: 1、选择实力强的互联网服务提供商,选用高带宽、高可靠的服务器部署服务...

手机访问有的网站打不开,换别的无线网就可以,为什么?

手机访问有的网站打不开,换别的无线网就可以,为什么?

1、可以进入“手机设置->无线和网络->WLAN设置”,点击手机下方的”菜单“按钮,在弹出的菜单中选择“高级”,然后在“WLAN休眠策略”的下拉菜单中选择”从不“,从而实现WLAN始终开启...

注册域名 价格(注册域名和企业邮箱)

注册域名 价格(注册域名和企业邮箱)

做网站不是一句话的事儿,网站可大可小,功能可强可弱,服务器配置也是很专业的问题。 简单来说下网站的构成,然后题主根据自己的做站需求来选择和核算成本吧。 做网站,只需要解决3个问题就可以了。1、网站内容...

作业帮域名的创建时间和到期时间?

作业帮域名的创建时间和到期时间?

保留期限是1-45天。 域名到期后30天内可以付费自动续费继续使用,到期后30-60天为付费赎回期,可以委托域名运营平台付费赎回(价格较高),超过60天一般就会被删除。其中不同的域名分类会有天数的差别...

在哪里可以领到淘宝优惠券?

在哪里可以领到淘宝优惠券?

随着网络的发展,互联网购物已经成为了我们生活的一部分,实体店的生意似乎越来越难做了。 淘宝或许已经成为了每家每户购物的平台之一了吧,在这里我们总能找到自己心仪的宝贝,足不出户便可货比三家,我们在这里不...

域名归属权和管理权的区别(如何通过域名查公司)

域名归属权和管理权的区别(如何通过域名查公司)

经营权和管理权的区别 1、实现方式不同。 企业的经营权:承包、租赁和公司制。 企业的管理权:有限博弈,动态博弈。 2、概念不同。 企业的经营权:企业经营权是指企业在经营过程中对企业财产经营、投资和其...

网站建设该如何去优化呢?

网站建设该如何去优化呢?

优化是笼统的 不同的行业有着不同的方案 什么 空间 页面 程序 代码 内容 外部链接 等一堆 做SEO的人越来越多,加大了SEO的难度,每一个行业都是如此,前期做的人很容易,后期越来越难做,这是自然...

发表评论

访客

看不清,换一张

◎欢迎参与讨论,请在这里发表您的看法和观点。