AIR for Android设置启动屏
我们知道,对于IOS系统,AIR是可以添加默认的启动屏的。如Default@2x.png Default.png之类,然后在打开app的时候,会给我们一个显示。然而Android 却没有这样的待遇,按理说,任何一个AIR做的APP 启动的时候,或多或少会出现暂时的黑屏,当然设备越低端黑屏时间越长。但是为啥Adobe就没这样做呢?
先不管这个,我们来看看,为啥说会黑屏。首先来看看AIR 的启动流程
1. 进入Adobe Air的主Activity;
2. 判断是独立运行时还是集成运行时;
3. 如果两种运行时都没有,弹出下载Adobe Air运行时提示框,如果有,则启动运行时;
4. 运行时通过应用配置文件中的content属性(在反编译的AndroidManifest.xml文件中为initialcontent)来加载assets文件夹中的主swf文件;
5. 加载成功,显示到屏幕。
即是说,在进入我们制作的内容之前 是会加载AIR运行时的,而加载过程肯定就有一定的时间,那么这段时间用来干嘛呢,好吧Adobe理智的选择了黑屏处理。
下面说说避免这种情况的方法。其实就是在加载运行时的过程中,手动的加载一张图片。然后显示这张图片,从而避免黑屏,达到相对较好的体验效果。
首先,用fb4.7打包一个apk,如xx.apk
然后将其用 Apk Manager 反编译 Apk Manager 有解包 和反编译两种解压方式,但这里我们选择反编译,不然的话弄不出values文件夹。
接着找一张.png或者.jpg或者gif格式的图片用来作为启动屏(不过gif的貌似只会显示一帧,再者按照国际惯例还是用png格式的),放置在xx/drawable文件夹下面并命名为launch.png
然后找到xx/res/values/styles.xml。打开这个xml 如下
<?xml version="1.0" encoding="utf-8"?> <resources> <style name="Theme.NoShadow" parent="@android:style/Theme.NoTitleBar"> <item name="android:windowContentOverlay">@null</item> </style> </resources>
接着我们在style标签内加上<item name=”android:windowBackground”>@drawable/launch</item>
最后如下
<?xml version="1.0" encoding="utf-8"?> <resources> <style name="Theme.NoShadow" parent="@android:style/Theme.NoTitleBar"> <item name="android:windowBackground">@drawable/lauch</item> <item name="android:windowContentOverlay">@null</item> </style> </resources>
接着我们打开apk manager 依次执行 编译apk 签名apk
最后就可以在手机上看到效果啦,一旦点开应用图标,便立马显示咱们的启动图,从而告别了黑屏时代。