开源中国 OsChina Android 客户端源码分析(1)启动界面 app_start

1启动界面的布局文件为app_start.xml ,对应的类文件为net.oschina.app 包下的AppStart.java。

2对于布局文件而言,因为只显示一张主题图片,因此布局简单直接设置背景图片。因为是启动界面,启动时会有短暂的卡顿,对于用户而言体验不好,因此在配置文件中自定义了style ,黑色 无标题 全屏(为什么选黑色的呢?是不是因为背景图图片是白的,衬托的更亮白呢?^_^)。设置了背景图片和无标题

<style name="Theme.AppStartLoad" parent="android:Theme.Black.NoTitleBar.Fullscreen">

        <item name="android:windowBackground">@drawable/welcome</item>

        <item name="android:windowNoTitle">true</item>

    </style>

疑惑:

2.1既然已经设置了 parent="android:Theme.Black.NoTitleBar.Fullscreen",为什么还要用<item name="android:windowNoTitle">true</item>,另外在样式中设置了背景图片,为什么在布局文件中还要在设置下背景图片呢?难道重复的工作确实会有效的降低启动界面卡顿的问题吗?

2.2布局文件中为什么要设置android:gravity="bottom"这个属性呢,让图片居于控件底部?这个意图是什么???

3AppStart.java文件

3.1利用了动画中的View的渐变动画效果,从半透明到完全不透明,动画持续时间为800ms,动画结束后,完成日志的上传和界面的跳转。

3.2日志上传利用服务在后台完成的,无论上传成功还是失败,最后要记得关掉服务。成功后,将旧的日志文件删除,因为我们要进行新的一轮操作,至于在什么地方会保存日志,后面随着逐步分分析应该会找到它的。此处用到了第三方包https://github.com/loopj/android-async-http. 

3.3在onResume函数中做了以下处理:主要是考虑APP版本升级后,当前的版本大于之前的版本,那么就将之前缓存的图片给清理掉,升级后缓存的图片很有可能没有用处了:此处引用了第三方包 http://kjframe.github.io/  。此包确实强大,可惜的是API文档中没有对启动界面引用的preference的API的详细解释,因此本条分析完全是自己揣摩的。至于图片缓存是App中哪一模块用到的,后面随着逐步分分析应该会找到它的。


郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。