美文网首页
一种Android闪屏页实现方法

一种Android闪屏页实现方法

作者: 王增辉 | 来源:发表于2016-03-25 12:30 被阅读6337次

为什么会有闪屏页

记得很久之前,那时候android手机才刚刚出来,我们学校工作室里手机游戏开发相关的还更多的是window phone,可能很多人没有见过,就是跟电脑一样有开始菜单那种。那时候工作室是跟韩国一家游戏公司合作成立的,有一款音乐播放软件需要移植到IOS设备上,说来也奇怪,当时觉得还特别正常的一件事,iPhone本身是有滑动解锁的,但是我们的App上居然也有一个启动页面需要解锁,现在来看这是多么傻的一个设计啊,不过那时候觉得滑动一下就解锁了,好炫酷。。。

个人觉得闪屏目前还存在有几个原因:

  • 所有软件都这么做
  • 可以有个页面介绍自己的软件
  • 可以放广告,做活动推广
  • 可以给用户一个错觉,其实后台已经开始加载数据了,闪屏过后数据直接呈现出来

就我待过的团队来看,可能因为量级不够吧目前做闪屏页的方式都没有涉及到推广活动放广告,不过像微博啊 新闻资讯类应用啊,做到一定量级之后都会有广告漏出,也算是一个盈利的入口。 还有更多的闪屏,就直接是一个闪屏,闪屏启动了也没有去后台加载数据,比较奇怪。网络慢的时候还有存在的必要,完全为了展示而展示。

自己琢磨的闪屏页预加载数据的方式

实现方式很多,这只是其中一种,我自己也实现过别的很多种方法

  • 通常需要设置SpalshActivity 为启动页,现在我们设置MainActivity为启动页
<activity
      android:name=".main.view.SplashActivity"
      android:configChanges="orientation|keyboardHidden|screenSize"
      android:screenOrientation="portrait"
      android:theme="@style/AppTheme.NoActionBar.Splash" />
<activity
      android:name="com.liananse.main.view.MainActivity"
      android:launchMode="singleTask"
      android:screenOrientation="portrait"
      android:theme="@style/AppTheme.NoActionBar.Splash" >
      <intent-filter> 
          <action android:name="android.intent.action.MAIN" />
          <category android:name="android.intent.category.LAUNCHER" />
      </intent-filter>
</activity>
  • 注意!注意!注意!MainActivity & SplashActivity 一定要设置成透明的window,这样当在MainActivity启动SplashActivity的时候才不会影响MainActivity本身的数据加载和呈现(涉及到activity的生命周期)MainActivity设置透明的原因是,启动时因为会先启动MainActivity 这是会先呈现出MainActivity的windowbackground 因此导致启动时先看到一点白色然后才显示SplashActivity 因此,设置透明便不会看到白色页面闪过。Style设置如下
<style name="AppTheme.NoActionBar.Splash">
    <item name="android:windowIsTranslucent">@bool/windowIsTranslucent</item>
    <item name="android:windowBackground">@color/transparent</item>
</style>
  • MainActivity 按照如下实现: 背景记得设置回来,不然看到的还是透明背景(这部分可能不一样,因为我本身在布局文件里没有添加根视图 用的activity自带的frameLayout)
@Override
protected void onCreate(Bundle savedInstanceState) {
      startActivity(new Intent(this, SplashActivity.class));
      getWindow().getDecorView().setBackgroundResource(R.color.main_bg);
      super.onCreate(savedInstanceState);
  }

以上搞完,就不用管MainActivity里面如何加载数据啊什么的了。再SplashActivity里面控制显示多久就好了。

参考:
http://blog.waynell.com/2015/11/17/android-cold-start/

相关文章

  • 一种Android闪屏页实现方法

    为什么会有闪屏页 记得很久之前,那时候android手机才刚刚出来,我们学校工作室里手机游戏开发相关的还更多的是w...

  • Flutter学习站点及项目中遇到的问题

    学习站点 flutter社区中文资源 Flutter实战[书] 闪屏页 Flutter 闪屏页实现 组件学习 15...

  • 关于android启动页优化建议

    android启动页优化 启动页也称之为闪屏页,就是在android应用第一次...

  • Android启动页开发

    老规矩,效果图如下: 启动页的开发主要包括了开屏闪屏和广告页的实现,效果如上图,具体的实现如下。 1、闪屏设计 实...

  • Flutter 闪屏页实现

    导入图片 在lib同级目录新建images目录,放入闪屏图片。 更新配置文件 打开pubspec.yaml文件,添...

  • Android 闪屏页适配

    遇到的坑 按官方文档设置完之后,debug运行,或者直接点击Run运行,闪屏页的logo不显示,清掉后台,从桌面点...

  • Android 实现闪屏

    先上效果图: 首先分析下实现的思路: 最初的设计是通过线程延迟几秒,再进行跳转实现的;后面发现AlphaAnima...

  • Flutter 项目的闪屏页方案

    Flutter 项目的闪屏页方案Flutter 项目的闪屏页方案

  • Flutter 闪屏页(启动页)实现

    我喜欢简单粗暴,直接上代码 方式一 Future.delayed 方式二 AnimationControll...

  • Android的问题

    Android蹲坑的疑难杂症集锦一 - 简书 Android App 启动页(Splash)黑/白闪屏现象产生原因...

网友评论

      本文标题:一种Android闪屏页实现方法

      本文链接:https://www.haomeiwen.com/subject/hnzrlttx.html