zoukankan      html  css  js  c++  java
  • 六 Android Studio打包Eegret App (解决开机黑屏问题)

    因为android studio中的SplashActivity并没有什么卵用,只是开机1s显示开机画面,1s后面还是黑屏。

    在主文件中加入以下代码,就是开始游戏时显示一个居中填满屏幕的图片,游戏加载完成后,再隐藏这个图片,来达到去掉黑屏的效果。

    import android.app.ActionBar.LayoutParams;
    import android.widget.ImageView;te ImageView image;
        //启动游戏,解决黑屏,顶层显示的图片
        private LayoutParams params;
        private ImageView image;
        public void startSplash(){
            params = new LayoutParams(LayoutParams.MATCH_PARENT,
                    LayoutParams.MATCH_PARENT);
            //设置中间位置
            params.gravity = Gravity.CENTER;
            image = new ImageView(this);
            image.setScaleType(ImageView.ScaleType. CENTER_CROP);
            image.setImageResource(R.drawable.splash_img);
            //添加控件
            addContentView(image, params);
        }
    
        //游戏启动后,隐藏顶层显示的图片
        public void stopSplash(){
            image.setVisibility(View.GONE);
        }

    哦,我的主文件是testappas

    在onCreate中调用startSplash

    监听stopSpash事件

        private void setInterfaces() {
            // Egret(TypeScript)-Runtime(Java)通讯
            // setRuntimeInterface(String name, IRuntimeInterface interface) 用于设置一个runtime的目标接口
            // callEgretInterface(String name, String message) 用于调用Egret的接口,并传递消息
            gameEngine.setRuntimeInterface("RuntimeInterface", new IRuntimeInterface() {
               @Override
                public void callback(String message) {
                    Log.d(TAG, message);
                    gameEngine.callEgretInterface("EgretInterface", "A message from runtime");
                }
            });
    
            gameEngine.setRuntimeInterface("reqLogin", new IRuntimeInterface() {
                @Override
                public void callback(String message) {
                    Log.d("externalInterface", "接收到Egret的登录请求 : " + message);
    
                    gameEngine.callEgretInterface("revLogin", "登录成功");
                }
            });
    
            gameEngine.setRuntimeInterface("stopSplash", new IRuntimeInterface() {
                @Override
                public void callback(String message) {
                    Log.d("externalInterface", "关闭开机画面 : " + message);
                    stopSplash();
                }
            });
    
        }

     Egret游戏加载完成后,在出现Egret自己的加载页面之前调用stopSpash接口即可。

    我一般是在显示在自己loadScene之前调用。

    egret.ExternalInterface.call("stopSplash","");
  • 相关阅读:
    centos安装配置jdk
    java封装数据类型——Byte
    centos7安装mysql8
    centos安装redis
    centos源码安装nginx
    Linux查看系统及版本信息
    sqlyog无操作一段时间后重新操作会卡死问题
    mysql8中查询语句表别名不能使用 “of”
    一次腾讯云centos服务器被入侵的处理
    java封装数据类型——Long
  • 原文地址:https://www.cnblogs.com/gamedaybyday/p/8284376.html
Copyright © 2011-2022 走看看