egret(白鹭引擎)发布android(安卓)App启动黑屏的解决方法
ChrisXie Lv5

设置启动图片或者设置透明

在查询发现很多android studio打包app后启动APP都有短暂黑屏或者白屏的问题,很多解决的办法后都是通过添加一张启动或者把背景设置为透明。所以就按照这两种方式去结合egret发布app项目文件解决。

目录结构:


在drawable目录下新建一个根节点为layer-list的xml文件,如launch.xml.loadinggb为背景图片(也在drawable目录里)

1
2
3
4
5
6
7
8
9
10
11
12
<?xml version="1.0" encoding="utf-8"?>
<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
<item android:drawable="@color/white"></item>

<item>
<bitmap
android:gravity="center"
android:src="@drawable/loadinggb"
android:tileMode="disabled" />
</item>
</layer-list>


设置colors.xml

1
2
3
4
5
6
7
8
<?xml version="1.0" encoding="utf-8"?>
<resources>
<color name="colorPrimary">#3F51B5</color>
<color name="colorPrimaryDark">#303F9F</color>
<color name="colorAccent">#FF4081</color>
<color name="black">#00000000</color>
<color name="white">#FFFFFFFF</color>
</resources>

在values目录创建style.xml来配置下面两种启动效果的方式

设置启动图片Theme:

1
2
3
4
5
6
7
8
9

<?xml version="1.0" encoding="utf-8"?>
<resources>
<style name="welcome" parent="@android:style/Theme.NoTitleBar.Fullscreen">
<item name="android:windowFullscreen">true</item>
<item name="android:windowBackground">@drawable/launch</item>
</style>
</resources>

设置背景透明Theme:

1
2
3
4
5
6
7
8
9

<?xml version="1.0" encoding="utf-8"?>
<resources>
<style name="welcome" parent="@android:style/Theme.NoTitleBar.Fullscreen">
<item name="android:windowIsTranslucent">true</item>
<item name="android:windowNoTitle">true</item>
</style>
</resources>


在egret发布的android项目中AndroidManifest.xml设置是直接设置为全屏的只是直接用android:theme="@android:style/Theme.NoTitleBar.Fullscreen", 这里我们需要替换成android:theme="@style/welcome"引入style.xml去引用我们修改的启动样式
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.jhyb">

<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.READ_PHONE_STATE" />
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE"/>

<application
android:allowBackup="true"
android:icon="@drawable/icon"
android:label="@string/app_name"
android:theme="@style/welcome" >

<meta-data android:name="android.max_aspect" android:value="2.3" />

<activity android:name=".MainActivity"
android:launchMode="singleTask"
android:screenOrientation="portrait"
android:windowSoftInputMode="adjustPan|stateAlwaysVisible"
android:configChanges="orientation|keyboardHidden|screenSize|screenLayout"
android:theme="@style/welcome">
<intent-filter>
<action android:name="android.intent.action.MAIN" />

<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
</application>

</manifest>

说明

在egret打包成app在启动是会有短暂的黑屏,在官方文档也有设置游戏背景透明的方式(或许跟这个也没关系),但是只能官方文档只能找到这个
有没有效果我也不知道;因为我不知道怎么设置


 评论
相关文章
标签云 更多