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

本文介绍如何解决CocosCreator在Android平台启动时黑屏问题,通过在启动画面显示遮罩图片,优化加载流程,确保游戏加载期间用户体验。文章详细讲解了在AndroidManifest.xml配置主题、AppActivity中实现加载图片遮罩以及通过JS调用Java清理遮罩的方法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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

先建立一个主题 主题继承android自带的全屏黑
在这里插入图片描述

然后在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();
}
);
这样启动的时候就立刻显示一张图,当进入游戏在加载过程中也就显示图片等加载完正常进入游戏。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值