【问题标题】:Android, how to make a Splash Screen aka Launch Screen without the white screen?Android,如何在没有白屏的情况下制作启动画面(又名启动屏幕)?
【发布时间】:2015-10-21 00:49:12
【问题描述】:

与许多其他 Android 开发人员一样,我不是闪屏的忠实拥护者,但大多数客户仍然想要它们,因为 iPhone 拥有它们或其他一些“伟大”的理由。

在 android 指南中它说:

当然,您希望每个人都能快速掌握基本知识,发现出色的功能,并充分利用您的应用。因此,当所有新用户第一次打开应用程序时,您可能会想向他们展示一次性的介绍性幻灯片、视频或闪屏。或者,当用户第一次与某些功能交互时,您可能会被显示有用的文本气泡或对话框的想法所吸引。

链接here“不要显示未经请求的帮助,除非在非常有限的情况下”的第一段

现在在材料设计指南中,他们建议开发人员使用"Launch Screen"

由于在显示空白画布时启动应用会增加其感知加载时间,因此请考虑使用占位符 UI 或品牌启动屏幕。

我猜安卓网站还没有更新。无论如何,Hangouts 的最新版本(5.0.104...)有一个非常漂亮和快速的启动屏幕。它立即显示在我的 Nexus 5 和 Marshmallow 上。所以我的问题是,有没有“官方”的方式来做到这一点?

我一直在寻找示例,但除了像此示例 here 这样的解决方法外,我什么也找不到,它使用了我认为最常见的启动屏幕活动方法。但是,当应用在实际启动画面显示之前被销毁时,这会显示白屏。

这个second example 使用带有窗口背景的主题,它会立即显示,但几乎同样快速地消失。

那么,Google 是如何让 Launch 屏幕像在 Google Hangouts 中一样无延迟显示且之前没有任何白屏的呢?

【问题讨论】:

    标签: android material-design


    【解决方案1】:

    我的一位同事在伦敦的 Google 总部接受了材料设计培训,他们的官方做法是在主题中使用 windowBackground,正如您在自己的问题上发布的那样:http://antonioleiva.com/branded-launch-screen/

    这个想法是框架可以非常快速地显示 XML 主题,并且一旦您的实际布局被加载,它就会可见。

    环聊甚至 Google 地图之间的区别在于,它们的布局非常繁琐/复杂,而且它们的加载时间比 HelloWorld 应用程序要长。

    随着您的应用程序变得越来越复杂,并且在Application.onCreateActivity.onCreate 期间初始化的元素越来越多,您的斜线屏幕也将可见更长时间。

    编辑:

    我从官方“Android 开发者”个人资料中找到了一篇 Google+ 帖子,并从 Google 工程师 Ian Lake 转贴了同样的内容:

    https://plus.google.com/+AndroidDevelopers/posts/Z1Wwainpjhd https://plus.google.com/+IanLake/posts/SW7F2CJvAmU

    【讨论】:

      【解决方案2】:

      这是因为第一个解决方案 (http://antonioleiva.com/branded-launch-screen/) 正在更改 onCreate 中的主题。 但您的 Activity 小部件尚未在 onCreate 中呈现。这就是您看到白屏的原因。第二个例子是一个很好的例子。如果您需要更长的时间,请将 SPLASH_TIME 设置为更长。检查 doInBackground 函数中的 Thread.sleep(SPLASH_TIME) 行。你可以再等等。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2023-02-10
        • 1970-01-01
        • 2018-03-18
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2018-03-17
        • 1970-01-01
        相关资源
        最近更新 更多