为什么会有黑白屏

在桌面点击应用图标后,在app进程没有创建的情况下,需要时间创建app进程,初始化资源,以及启动首页Activity的(这里讨论的首页是指AndroidManifest里面标志的启动页),这就意味点击图标不能马上看到启动页。为了不让用户有卡顿的感觉,谷歌有了Preview Window,在启动页没有绘制完成时,会先初始化一个Window,我们通常看到的黑屏或白屏,就是这个预览窗口。

怎么知道是黑屏还是白屏?

黑白屏是预加载的窗口,这个窗口的一些属性可以在theme里更改。新建一个项目,会在AndroidManifest的application所属标签里面的内容看到android:theme=”@style/AppTheme”,这个是默认的theme。查看这个AppTheme,找到name=”android:windowBackground”这个属性,查看属性下的内容,就能知道是黑屏还是白屏,这个属性就是设置预览窗口的背景。无论是黑屏还是白屏,给用户的体验都不好,所以就有了把背景设为透明或者用一张图片来作为启动背景的解决办法。这些只是很基本的解决办法,而且存在一定的弊端,既然我们要让用户体验更好,就应该处理得更加优雅一些。

如何优雅的解决黑白屏

解决黑白屏,需要和启动页结合起来。现在的APP基本上都有闪屏页,有些是为了加载广告,有些是为了通过闪屏页初始化App的一些资源,本篇文章就讨论有闪屏的启动页,以网易云音乐对预加载窗口和闪屏页的处理来举例。来看看网易云的预加载页和启动页。

第一张是预加载页,第二张是闪屏页,闪屏页只比预加载页多了底部的图标和网易云音乐这四个字(其实是一整体,一张图片),而且给人的感觉是一直是预加载页,不过底部的图标和文字会慢慢出现,这样的处理比单独的显示图片或者设置为透明更让人能够接受。下面我们就来看看代码。

styles文件自定义Theme

@drawable/launch_layout

true

true

@null

launch_layout,代码中的top_img,是“音乐的力量”四个字的图片。

SplashActivity的布局文件为

android:layout_width="match_parent"

android:layout_height="match_parent">

android:layout_width="wrap_content"

android:layout_height="wrap_content"

android:src="@mipmap/bottom_imag"//bottom_imag为底部的图标和文字

android:layout_alignParentBottom="true"

android:layout_centerHorizontal="true"

android:layout_marginBottom="50dp"

/>

最后在AndroidManifest里将lanuchTheme设置给闪屏页(下文用SplashActivity表示),就大功告成了。

写以上布局需要注意:由于没有给SplashActivity的布局设置背景色,也就是透明色,而两个页面的区别只有底部加了一张图片,所以在SplashActivity的布局中就不需要再把预加载页的内容再写一次。

总结

黑白屏的解决是为了让用户觉得点击图标就得到了响应,App启动很顺畅,这个过程能在视觉上给人美感,那就更好了。不同的应用场景可以有不同的解决办法,不一定是有闪屏页,也不一定要和网易云音乐一样,也可以在闪屏页写一个动画或其它效果。想弄懂黑白屏,可以先做做以下功课

本篇网易云音乐解决方案的原理

明白为什么自定义theme,并且单独设置给Activity

了解layer_list可以做什么

弄明白这几个问题,解决黑白屏就不是什么难事了。

作者:honey饼

链接:https://juejin.im/post/5e0ac535e51d4540e63d811b

android看黑白电子书软件,如何优雅解决App启动黑白屏相关推荐

  1. linux中白屏变黑屏咋变,解决 APP启动白屏黑屏问题

    闪屏页简介 闪屏页,我们手机上的每个 APP 几乎都有自己的闪屏页,就是在真正进入程序前,会有一个页面停顿几秒钟.其实我们完全可以充分利用好这几秒钟做很多的程序初始化了启动. 为什么我的 APP 启动 ...

  2. android应用白屏闪退,解决 APP启动白屏黑屏问题

    闪屏页简介 闪屏页,我们手机上的每个 APP 几乎都有自己的闪屏页,就是在真正进入程序前,会有一个页面停顿几秒钟.其实我们完全可以充分利用好这几秒钟做很多的程序初始化了启动. 为什么我的 APP 启动 ...

  3. 解决 APP启动白屏黑屏问题

    闪屏页简介 闪屏页,我们手机上的每个 APP 几乎都有自己的闪屏页,就是在真正进入程序前,会有一个页面停顿几秒钟.其实我们完全可以充分利用好这几秒钟做很多的程序初始化了启动. 为什么我的 APP 启动 ...

  4. 咚咚咚————【软件安装】解决Matlab启动缓慢问题

    咚咚咚----[软件安装]解决Matlab启动缓慢问题 (一)原因分析 (二)解决方法 操作系统windows7 旗舰版 64位 i7-4710MQ 内存16G (软件版本Matlb2018b ) ( ...

  5. Android 开发过程中遇到的棘手的问题笔记(SP引起的ANR,4G网络请求慢,app启动白屏)(持续更新)

    前言 经历过面试的人应该都知道,一般我们在进行技术面试的时候,面试官都会问你,在项目开发中遇到过什么棘手的问题?最后是怎么解决的?本人之前就问到过好几次,可是由于准备不足,一时之间想不起来所遇到过的& ...

  6. 【转】Android APP 启动黑屏优化补丁 (2016-01-18 10:35:23)

    [转]Android APP 启动黑屏优化补丁 (2016-01-18 10:35:23) 转载▼ 这个必须转,这才是高手,解决官方都解决不好的问题! 原文地址,以下为转贴内容: 使用说明 ***** ...

  7. android app启动失败,Android应用App启动白屏(黑屏)问题解决

    Android应用App启动白屏(黑屏)问题解决 点击Android手机桌面的应用App icon图标后,Android启动这个应用,正常情况下会立即看到并进入到开发者自己写在MainActivity ...

  8. Android应用App启动白屏(黑屏)问题解决

    Android应用App启动白屏(黑屏)问题解决 点击Android手机桌面的应用App icon图标后,Android启动这个应用,正常情况下会立即看到并进入到开发者自己写在MainActivity ...

  9. Android的识花软件推荐,识花app哪个好_鲜花app哪个好用_看图识花的软件哪个好

    核心提示:识花的软件有很多,哪些识花软件是我们想要的呢,下面多特小编就跟您推荐几款比较合适的软件或者app给您参考 识花的软件有很多,哪些识花软件是我们想要的呢,下面多特小编就跟您推荐几款比较合适的软 ...

最新文章

  1. debian安装oracle jdk
  2. 【玩转cocos2d-x之十九】从CCObject看cocos2d-x的拷贝机制
  3. linux中grep命令查找目录下,linux中查找grep与find命令的使用
  4. 上下相机贴合对位计算公式_深圳贴合机生产家介绍;真空贴合机这些产品功能你了解多少...
  5. HackerOne《2020年黑客驱动安全报告》:中国白帽子的收入增长幅度最大
  6. Ubuntu18.04进入命令行模式和recovery-mode安装软件
  7. CCS7.0从安装到使用
  8. Allegro 使用一些总结
  9. python实现明星专家系统
  10. 老中医给程序员的养生指北|开奖啦
  11. 什么是UserAgent
  12. html心碎粒子特效,system-data.html
  13. 招人!!!招人!!!
  14. 身份证校验和获取身份证信息的方法
  15. textarea中的内容保存与显示时换行符的处理方法
  16. Daughter of Deceit
  17. 小程序开发(一)新建/拉取项目,配置远程仓库
  18. 区块链技术+二维码,打造爱码物联产品质量溯源软件
  19. Zcash:工作原理
  20. DirectX修复工具增强版更新包

热门文章

  1. 科技视界杂志科技视界杂志社科技视界编辑部2022年第18期目录
  2. 2022年1月语音合成(TTS)和语音识别(ASR)论文月报
  3. 木兰词-人生若只如初见-纳兰性德
  4. sparse coding
  5. 手把手教你搭建使用NuGet私有源
  6. WeUI源码学习笔记一
  7. php 表格序号,excel自动生成序号、编号
  8. GBase 8c应用场景分析
  9. SQL Server2008函数大全
  10. Java Web项目中遇到的文件上传与下载问题