一般APP启动都会显示一个白屏或者黑屏的页面,再跳到欢迎页,这样子的体验效果不好。这到底是怎么回事呢?要如何解决它呢?今天我们来分析下它产生的原因,以及解决方案。

1、产生原因

当系统启动一个APP时,zygote进程首先会创建一个进程去执行这个APP,但是创建进程是需要时间的,用户点击后以为没响应会再次点击,这样的体验效果不佳。为了解决这种迷之尴尬,Android系统会根据你的manifest中设置的主体颜色来显示一个白屏或者黑屏,它的正式称呼是Preview window,即预览窗口。

2、解决方案

这个问题的本质是,虽然代码还没执行,但是配置文件被提前读取了,所以我们主要针对mainfest来解决这个问题,更准确的说,是主题配置文件。

(1)修改启动的Activity的主题

具体方法如下: style.xlm

@drawable/splash_icon

同样将主题设置到启动的Activity的主题中,windowBackground就是即将展示的preview window。其中splash_icon可以是一整张图片,网上很多小伙伴也都是这么做的。

其实它也可以是一个能解析出图片资源的XML文件,好像只有layer-list这种能做得到,因为它能够将多个drawable叠加起来展示。

这样子就可以解决黑白屏的问题了。

(2)进一步优化:添加动画

一般我们的APP启动后都会有欢迎页,然后再进入主页。按照上面的做法,会先显示图片,接着显示欢迎页,然后到主页,由图片到欢迎页的跳转过渡很突兀,强迫症分分钟不能忍呀~

所以我们进行进一步的优化:添加动画。

实际上Preview window只能是静态图,展示不了动画。我们的做法是在跳到欢迎页中实现动画,就是在Preview widow跳转到欢迎页时,先显示一个跟Preview window页面一模一样的页面,让人觉得好像没有切换似的,然后再慢慢切换到欢迎页。

这里有个小问题要注意下:我们给Preview window设置的背景图如果不作处理,是会一直存在在内存中的,所以在进入欢迎页的onCreate中将背景图还原:

getWindow().setBackgroundDrawableResource(android.R.color.white);

到此启动页黑白屏的问题可以交货咯~

android黑屏日志_Android启动页黑屏的解决方案相关推荐

  1. android广告页白屏_Android 启动页白屏解决方案

    当我们打开app的时候是不是会有一瞬间的白屏然后再进入主活动,虽然这并不会造成什么不好的后果,但是感觉用户体验就不是很好.像网易云音乐等等,打开一瞬间就显示了他们的loge,无缝衔接,没有白屏,怎么 ...

  2. Android系统(121)---Android启动页黑屏及最优解决方案

    Android启动页黑屏及最优解决方案 前言 相信做过Android的朋友都知道,当一个APP启动时,界面会首先展示一个白屏或者黑屏,然后再进入欢迎页,稍作停留最后进入APP主页.那么这个黑屏或者白屏 ...

  3. Android 系统(119)---Android启动页黑屏及最优解决方案

    Android启动页黑屏及最优解决方案 前言 相信做过Android的朋友都知道,当一个APP启动时,界面会首先展示一个白屏或者黑屏,然后再进入欢迎页,稍作停留最后进入APP主页.那么这个黑屏或者白屏 ...

  4. android最优化启动画面,Android启动页黑屏及最优解决方案

    原标题:Android启动页黑屏及最优解决方案 作者:拉丁吴 链接:https://juejin.im/post/58ad90518ac2472a2ad9b684 前言 相信做过Android的朋友都 ...

  5. android 加载图片黑屏,Android 中启动页黑屏及白屏的解决方式

    启动页黑屏或白屏的原因是,当Activity启动的时候不能马上加载layout. 而黑屏或者白屏是你的theme主题的默认样式,当layout没加载出来就显示黑屏或者白屏. 1.windowBackg ...

  6. Flutter——踩坑之旅(iOS闪屏页+启动页 闪屏之后会黑一下才进入启动页)

    程序猿日常 flutter填坑--iOS闪屏页+启动页效果优化 闪屏之后会黑一下进入启动页 问题描述 大部分app都有自己的启动页,我们经常在启动页做一些判断逻辑,例如 是否第一次启动app,第一次启 ...

  7. 解决 Android APP 启动页白屏问题及如何实现全屏显示

    目录 一.白屏原因分析 二.解决白屏方案 方案一.提供 .png 背景图 方案二.使用 Layout-list 制作背景 1.  制作替代白屏的背景:bg_splash.xml 2. 将 bg_spl ...

  8. Android APP应用启动页白屏(StartingWindow)优化

    转自:https://www.cnblogs.com/whycxb/p/9312914.html 本人采用这种方法没有效果,启动图片出来第一帧,我应用的第一帧也出来了. 启动背景颜色没有调试出来,Th ...

  9. Android启动页白屏背景图拉伸的解决方案

    Android启动页白屏&背景图拉伸的解决方案 1.前言 2.问题点 3.代码及说明 4.注意点 1.前言 新项目的闪屏页面用到一张大图,UI那边要求那张图片填充全屏,而且不能压缩或拉伸. 然 ...

最新文章

  1. iOS中常见的图片压缩方法
  2. c++ 句柄 计算控件坐标_练习答案|| 计算机基础第【28】期
  3. 区块链去中心化的生命之源:“DPOS(委托权益证明)共识机制”
  4. 全球及中国磁性分离头滑轮行业发展潜力与投资策略分析报告2022版
  5. Horizon组件安装详解 - 远程连接OpenStack服务
  6. 正态分布图_用EXCEL简易制作正态分布图
  7. 深入理解条件过滤Conditional
  8. python遍历链表_四种常见链表的实现及时间复杂度分析(Python3版)
  9. 使用trycatch获取异常问题
  10. 拉格朗日法建立动力学方程
  11. 千年3步法外挂 千年3脚本 千年3外挂 千年3最新外挂
  12. java字符串不足长度自动补0
  13. 理论力学知识要点(五)
  14. TOM企业邮箱注册流程是什么,如何开通邮箱
  15. LabVIEW编程LabVIEW开发 十六进制转换ASCII例程与相关资料
  16. DataStage 简介
  17. Android学习——5个UI界面设计
  18. 专家谈房产两难:力图房价回归理性 担心地产崩溃
  19. 基于炜煌单片机的lcd12864上下左右移动程序,芯片类型stc12c5a60s2
  20. 理解递归的返回——递归查询地区表

热门文章

  1. Django讲课笔记07:设置路由分发规则
  2. Intel 64/x86_64/IA-32/x86处理器指令集 - CPUID (1) - 概述
  3. Pentium II Pentium III架构/微架构/流水线 (5) - MMX
  4. ansys怎么使用anand模型_【干货】经典ANSYS 与 Workbench如何实现联合仿真,相互切换操作。...
  5. python程序内存分析_python 如何测量运行中的程序内存 -- Valgrind
  6. 在vscode运行js 输出会合并_前端系列——JS的运行与输出
  7. python打开csv文件绘制折线图,[转载]python绘制简单折线图
  8. 微信小程序动态更改标题栏_微信小程序实现动态设置页面标题的方法【附源码下载】...
  9. MySQL子查询的使用
  10. python多线程控制暂停_python中的多线程编程与暂停、播放音频的结合