cocoscreator android 项目启动加载黑屏加个遮罩掩盖

cocoscreator android 项目启动加载jswrapper时间过长黑屏加个遮罩掩盖。
正如网友 https://www.jianshu.com/p/662274d5d637 通过activity快速启动,但是加载过程属于游戏activity,导致加载时还是黑屏,所以在oncreate()方法里通过addContend()加一个图片来遮挡黑屏,在底层加载完jswrapper后进入main.js的boot函数进入游戏场景时通过jsb调用java层清理图片遮罩,正常进入游戏界面。


先建立一个主题 主题继承android自带的全屏黑
<resources>
    <style name="AppWelcome" parent="@android:style/Theme.NoTitleBar.Fullscreen">
        <item name="android:windowBackground">@drawable/welcome</item>
    </style>
</resources>
然后在AndroidManifest.xml 中将appActivity 的主题换成以上主题
<activity
android:name="org.cocos2dx.javascript.AppActivity"
android:screenOrientation="sensorLandscape"
android:configChanges="orientation|keyboardHidden|screenSize"
android:label="@string/app_name"
android:theme="@style/AppWelcome"
>
这样启动就显示一张全屏图了。
在appActivity中加入变量和函数并在oncreate()中实例下
protected static Handler mUIHandler;


private static ImageView mWelcome = null;


    // 创建一个ImageView,welcome是闪屏图片
    protected ImageView createLaunchImage() {
        mWelcome = new ImageView(mContext);
        mWelcome.setImageResource(R.drawable.welcome);
        mWelcome.setScaleType(ImageView.ScaleType.CENTER_CROP);
        return mWelcome;
    }


    // 当资源加载好了之后 删除之前创建的imageView 否则一直会在界面上显示
    public static void removeLaunchImage() {
        mUIHandler.post(new Runnable() {
            @Override
            public void run() {
                if (mWelcome != null) {
                    mWelcome.setVisibility(View.GONE);
                }
            }
        });
    }


在onCreate() 中加
// DO OTHER INITIALIZATION BELOW
mUIHandler = new Handler();
// 显示launch image 遮住「黑屏」
addContentView(createLaunchImage(),
new WindowManager.LayoutParams(
WindowManager.LayoutParams.FLAG_FULLSCREEN,
WindowManager.LayoutParams.FLAG_FULLSCREEN));

在main.js中调整
var launchScene = settings.launchScene;
var clearWelcomeImage = function(){
console.log("clear welcome image ...")
if (cc.sys.os === cc.sys.OS_ANDROID) {
let className = "org/cocos2dx/javascript/tool/Utils";
let sigs = "()V";
jsb.reflection.callStaticMethod(className, "clearWelcomeImage", sigs);
} else if (cc.sys.os === cc.sys.OS_IOS) {
}
}
            
// load scene
cc.director.loadScene(launchScene, null,
function () {
if (cc.sys.isBrowser) {
// show canvas
canvas.style.visibility = '';
var div = document.getElementById('GameDiv');
if (div) {
div.style.backgroundImage = '';
}
}
cc.loader.onProgress = null;
console.log('Success to load scene: ' + launchScene);
clearWelcomeImage();
}
);
这样启动的时候就立刻显示一张图,当进入游戏在加载过程中也就显示图片等加载完正常进入游戏。
继续,加油!
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值