当前位置:首页 > 问答

【ap黑屏是怎么回事】Android起始页黑屏及最优解决方案

作家,拉丁欧

前言

相信玩过Android的朋友都知道,APP启动后,界面会先显示白色屏幕或黑色屏幕,再进入启动页面,停留一会儿,然后进入应用程序主页。(威廉莎士比亚、坦普林、陈云)。(Northern Exposure)那么,这个黑屏或白屏到底是怎么回事呢?最好的解决办法是什么?今天我们认真讨论这个小问题吧。

此次项目的演示:

历史原因

系统启动应用程序时,zygote进程首先创建一个新的进程来运行该应用程序,但创建进程需要时间,在创建完成之前界面暴露在歌词状态下是很尴尬的。因为以为用户没有到达APP,再点击会大大降低用户体验。Android必须及时反馈以避免这种情况。因此,根据清单文件中设置的主题颜色,系统将显示白色屏幕或黑色屏幕。这个黑色(白色)屏幕的正式名称必须是预览窗口,即预览窗口。

好了,现在我们明白了Preview Window实际上是为了提高用户体验而故意设置的。所以,如果不是强迫症,可能不是问题。

但是大多数朋友好像和我一样是强迫症患者。这么丑的黑屏怎么会出现在我的app上?嗯?嗯?

好了,现在我们来谈谈这个问题的解决方法。

解决方法

既然决定解决这个问题,从哪里开始呢?Android取决于选择显示黑色屏幕或白色屏幕时设置的主题。也就是说,即使代码没有运行,配置文件也会被预先读取,并用作显示Preview Window界面的基础。大卫亚设(David Assell),Northern Exposure(美国电视新闻)。

因此,戴尔解决方案的剪切门户是整个APP的清单文件,更准确地说,应该是主题概要文件。

情景一:历史落后

此方案禁止加载Preview Window,如下所示:

style name=' apptheme ' parent=' @ Android 3360 style;

itemname=' Android : windowdisablepreview ' true/item

/style

通过将APPTheme设置为启动活动的主题,可以阻止previewindow。当然,也有人可以将previewindow设置为完全透明,以达到类似的效果。

结果,单击APP后,界面在一段时间内没有响应,进入APP。

我个人强烈不推荐这样做。因为在Android想办法的用户体验突然被你解放之前。(莎士比亚)。

案例2:自订预览视窗

具体方法如下:

style name=' apptheme ' parent=' @ Android 3360 style;

itemname=' Android 3360 window background ' @ drawable/splash _ icon/item

/style

>

同样将主题设置到启动的Activity的主题中,windowBackground就是即将展示的preview window。其中splash_icon可以是一整张图片,网上很多小伙伴也都是这么做的。其实它也可以是一个能解析出图片资源的XML文件,好像只有layer-list这种能做得到,因为它能够将多个drawable叠加起来展示。

<?xml version="1.0" encoding="utf-8"?> <layer-list xmlns:android="; android:opacity="opaque"> <item android:drawable="@color/white"/> <item> <bitmap android:gravity="center" android:src="@drawable/qq"/> </item> </layer-list>

这样设置之后,当你点击APP,会立马进入你配置的界面,然后启动欢迎页,效果如下:

那么,将preview window直接设置为图片和设置为xml文件有什么区别或者优劣呢?我先卖个关子。先谈谈这种方案的优劣,首先这种方案已经解决了原生preview window的单调难看的问题,在原来的基础上进一步提升了用户体验。可是我们的APP都是有欢迎页的,从preview window跳转到欢迎页是不可避免的,这样的话,两个界面的切换就会显得很突兀的,

所以强迫症的我们,尝试让这两个界面的切换变成一个界面的变化,从而进一步提升显示效果,怎么样才能让两个界面切换看起来像是在同一个界面里的变化呢?答案就是: 动画。

在这种需求下,图片和xml文件的区别就出来了,因为后者可以帮助我们更准确的实现动画。

方案三:自定义Preview Window增强版

废话少说,我们先来看效果。

有了动画之后,界面切换顺畅了许多。

上面的动画实现其实非常简单,无非就是放缩,移动,渐变的组合使用(我仅仅用作范例给大家参考),具体的动画代码细节就不谈了,有兴趣可以去github上看本次项目的demo,我们重点来聊一聊思路。

在这里我们需要明确一点的是,preview window只能是静态图,它本身是不展示动画的,我们这里的动画,其实是在进入欢迎页之后的展示的。明确了这一点之后,整个动画效果的实现思路其实就已经摆在我们眼前了,那就是当界面从 Preview Window 跳转到 欢迎页 的时候,欢迎页必须首先展示一个和Preview Window一模一样的界面,让人看起来好像界面还没切换一样,然后再慢慢切换到欢迎页。

然后,我们再来谈谈为什么设置xml的方式可以帮助我们更准确的实现动画,就是因为要保证Preview Window和欢迎页最开始展示的界面保持绝对一致,只有通过xml的布局才是达到这种效果。

好了,启动页做到这个份儿上,应该就可以交货了,不过还有一个小问题需要大家注意的,那就是我们给Preview Window设置的背景图如果不做处理,图片就会一直存在于内存中,所以,当我们进入到欢迎页的时候,不要忘了把背景图设置为空:

S

@Override protected void onCreate(@Nullable Bundle savedInstanceState) { //将window的背景图设置为空 getWindow().setBackgroundDrawable(null); (savedInstanceState); }

到这里,关于Android启动页的相关问题就都讲完了。

获取本次项目的demo:



后记

这篇文章中,关于Android启动页的相关原理并没有从Android framework层的代码来做出解释,不过以后写到framework层的文章时候可能会提及这里。不过我想框架层的代码可能不是大家想关注的重点,因此我认为这篇文章应该是合适的。

更多Android开发方面的教程,点赞+评论、私信我回复”资料“获取!

1.《【ap黑屏是怎么回事】Android起始页黑屏及最优解决方案》援引自互联网,旨在传递更多网络信息知识,仅代表作者本人观点,与本网站无关,侵删请联系页脚下方联系方式。

2.《【ap黑屏是怎么回事】Android起始页黑屏及最优解决方案》仅供读者参考,本网站未对该内容进行证实,对其原创性、真实性、完整性、及时性不作任何保证。

3.文章转载时请保留本站内容来源地址,https://www.lu-xu.com/why/3029338.html

上一篇

【仪表盘电源指示灯不亮了怎么回事】唐DM塔配车内220伏电源不通电,指示灯不亮,这是怎么回事?(莎士比亚、windows、DM、DM、DM、DM)

下一篇

【怎么焊手机芯片】新手挑战BGA焊接,使用废弃的手机EMMC书版DIY,换成USB键重复使用

【ap黑屏是怎么回事】Android应用程序黑屏场景分析

【ap黑屏是怎么回事】Android应用程序黑屏场景分析

ap黑屏是怎么回事相关介绍,黑屏将生成以下场景: (1)如果应用程序启动时间超过5s,几乎会出现黑屏或白屏。 (2)启动未优化的新进程可能会出现黑屏(例如,应用程序前台剪切背景,主进程被杀,后台剪切前景可能会出现黑屏)。 我们在...

【ap黑屏是怎么回事】ping和app为什么打不开,黑屏在转。

【ap黑屏是怎么回事】ping和app为什么打不开,黑屏在转。

ap黑屏是怎么回事相关介绍,IOS设置进入“itunes and App Store”,按Apple ID,注销后重新登录,不会出现“无法连接到App Store” 第二种解决方法 修改DNS域名,设置-无线本地-信息(I),将...

【ap黑屏是怎么回事】安卓手机黑屏怎么办?

【ap黑屏是怎么回事】安卓手机黑屏怎么办?

ap黑屏是怎么回事相关介绍,手机反应慢,卡停止工作重新启动有很多原因,其中最重要的是手机硬件配置不理想。低端型号的CPU和内存很难满足批量应用程序的同时运行需求,SD卡不足有时会死机(尤其是应用程序转移到SD卡的情况下)。另一个...

【ap黑屏是怎么回事】为什么我的智能手机其他功能都很好,但是一安装app手机就黑屏了?(威廉莎士比亚,智能手机,智能手机,智能手机,智能手机,智能手机,智能手机)昨天还好吗?怎么处理呢?

【ap黑屏是怎么回事】为什么我的智能手机其他功能都很好,但是一安装app手机就黑屏了?(威廉莎士比亚,智能手机,智能手机,智能手机,智能手机,智能手机,智能手机)昨天还好吗?怎么处理呢?

ap黑屏是怎么回事相关介绍,问答党手机屏幕为什么我的智能手机其他功能都很好,但是一安装app手机就黑屏了?昨天还好吗?怎么处理呢? 不知道是什么原因,但是那个奸商手机店老板,主板坏了,不卡手机为什么还能用?想想就知道了。这种手机...