博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
闪屏页设置
阅读量:6453 次
发布时间:2019-06-23

本文共 1465 字,大约阅读时间需要 4 分钟。

hot3.png

相信每个app都需要一个闪屏页 就是一个开始页面  对于新手来说 可能就直接一个activity 弄个背景图片 ,细心地同学也许会发现 每次启动 应用程序的时候 一开始显示的不是那个设置的背景图片  而是白色或黑色背景 可能时间很短 这是为什么呢 。再看看其他市面上的应用都是一开始就是显示背景图片 而没有白色背景  研究了很久 其实 设置一下主题就行了  给activity设置主题 属性

进阶

应用App通常会设置一个固定的闪屏页展示时间,例如2000ms,所以我们可以根据用户手机的运行速度,对展示时间做出调整,但是总时间仍然为 2000ms。

闪屏页政展示总时间 = 组件初始化时间 + 剩余展示时间。

也就是2000ms的总时间,组件初始化了800ms,那么就再展示1200ms即可。

 Application 初始化后会调用 attachBaseContext() 方法,再调用 Application 的 onCreate(),再到入口 Activity的创建和执行 onCreate() 方法。所以我们就可以在 Application 中记录启动时间。

//记录Application初始化时间    @Override    protected void attachBaseContext(Context base) {        super.attachBaseContext(base);        SPUtil.putLong("application_attach_time", System.currentTimeMillis());//        Log.e("TAG", "attachBaseContext: "+System.currentTimeMillis() );    }

有了启动时间,我们得知道入口的 Acitivty 显示给用户的时间(View绘制完毕),在博客( )中了解到,在onWindowFocusChanged()的回调时机中表示可以获取用户的触摸时间和View的流程绘制完毕,所以我们可以在这个方法里记录显示时间。

@Override    public void onWindowFocusChanged(boolean hasFocus) {        super.onWindowFocusChanged(hasFocus);        if (SPUtil.cha("application_attach_time")){            long appAttachTime = SPUtil.getLong("application_attach_time");            //从application到入口Acitity的时间            diffTime = System.currentTimeMillis() - appAttachTime;//            Log.e("TAG", "onWindowFocusChanged: "+diffTime );        }    }

所以我们就可以动态的设置应用闪屏的显示时间,尽量让每一部手机展示的时间一致,这样就不会让手机配置较低的用户感觉漫长难熬的闪屏页时间(例如初始化了2000ms,又要展示2000ms的闪屏页时间.),优化用户体验。

转载于:https://my.oschina.net/u/3698786/blog/2088031

你可能感兴趣的文章
VC++获得微秒级时间的方法与技巧探讨(转)
查看>>
HDOJ-1010 Tempter of the Bone
查看>>
MySQL my.cnf参数配置优化详解
查看>>
HDU/HDOJ 2102 A计划 广度优先搜索BFS
查看>>
第一个Django项目
查看>>
使用Django annotation,提升django查询性能
查看>>
Canvas 学习笔记(二)——基础图形的绘制
查看>>
51信用卡Android 架构演进实践
查看>>
拨云见日看什么是分布式系统?
查看>>
AWS推出深度学习容器,简化AI程序开发
查看>>
血淋淋的BUG:波音在软件开发上错在哪里?
查看>>
阿里新任CEO张勇首次电视采访:云计算将是阿里未来主要业务
查看>>
Docker发布应用程序指南
查看>>
Rider EAP17带来了许多改进但缺乏.NET Core调试功能
查看>>
别动我的代码!聊聊那些代码保护的艺术
查看>>
迅雷“星域”打通最后一公里重新定义CDN
查看>>
何时该用无服务器,何时该用Kubernetes?
查看>>
在Vue工作流中使用CSS Modules
查看>>
如何搭建一个私人网盘
查看>>
PowerDesigner 与 SQL Server 的协作(壹)建立连接
查看>>