启动页适配分为三个点:

背景图:(拉伸问题)状态栏:(状态栏透明、半透明、不透明)导航栏:(是否需要透明)内容跳动:(开屏图片与启动页背景切换时产生)

一、背景图: 背景图适配,启动图效果图一般都是一个可以循环的背景,比如.9图,或着其它组合图,项目内置有限的图片资源适配所有屏。 .9图或着矢量图,只需要一张图当作启动图就可以了,如果是组合图,可以使用drawable文件,组合自己想要的效果就可以了。

有的应用可能需要一张海报等无法循环拉伸的启动图时,只能放一张尽量大的图,来尽量适配了。

二、状态栏: 状态栏分为三种:不透明、半透明、全透明

不透明:就不说了。半透明:这种状态也不是最好的一种文案,实现方法比全透明要省几行代码,要求不高可以使用 直接上代码

这样设置的状态是半透明的 3. 全透明 如果设置全透明,为了分享状态上的文字与应用内容颜色重全,系统默认会为状态栏添加一个半透明层,这样就不会由于应用内颜色导致看不清时间、信号等状态内信息。 解决办法就是不设置状态栏透明,系统就不会添加半透明层,但状态栏颜色设置为透明

只要上面两行配置,这样状态栏是透明的,背景图还没有被遮挡。效果如下: 启动图解决了状态栏,但这样配置有个问题,就是内容无法显示到状态的位置。 如果启动Activity的布局需要显示在状态栏下面,则只能在代码中实现,这是状态栏全透明比半透明多的几行代码,代码需要放到onCreate方法前执行

//状态栏透明

window.getDecorView().setSystemUiVisibility(View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN)

//状态栏、导航栏都透明(导航栏是半透明,导航栏无法做到全透明,在个别机型系统中是全透明)

window.addFlags(WindowManager.LayoutParams.FLAG_TRANSLUCENT_NAVIGATION)

三、导航栏透明: 导航栏透明也只能做到半透明,在一些机型上是全透明,这点不要纠结全透明问题了,看了几十款磊厂的App,都是这样。 半透明比不透明好在消失的动画更自然。适情况使用,如果启动页底色正好是纯色,可以设置导航栏为底色,这样更自然,像腾讯视频,实现方式就是白色导航,启动时导航栏消失后显示版号,效果比导航栏透明要好很多。 实现方式

代码中实现:

//状态栏、导航栏都透明(导航栏是半透明,导航栏无法做到全透明,在个别机型系统中是全透明)

window.addFlags(WindowManager.LayoutParams.FLAG_TRANSLUCENT_NAVIGATION)

四、内容跳转 在适配开屏页时,应用启动时首先会加载window的背景图,当应用启动起来会切换到启动Acitivity的页面,会了无感知切换,我们一般会让这两个页面的背景效果一致,如果两个内容不致就会产生跳动的效果,一般产生的原因是: 导航栏或状态栏的透明引起的。导航栏的问题居多,启动图显示的区域是全屏,包含导航栏和状态栏的高度,如果启动Acivity的透明效果设置问题就会导致图片裁剪方式不一致,产生跳动问题。

至此全部内容都结束了。 具体怎么使用,根据自己的需求配置状态栏和导航栏显示效果。 在这里把原图展示出来

精彩内容

评论可见,请评论后查看内容,谢谢!!!
 您阅读本篇文章共花了: