项目需求,需要做一个闪屏,网上找了文章,大多数都是做个定时器(大概是这个意思),等两秒然后跳转主activity。
类似这些文章https://blog.csdn.net/lindroid20/article/details/52557766
然后定时器这两秒游戏中是啥事都不做的,白等两秒。所以想换一种做法,显示闪屏时游戏也同时在加载。
Unity安卓之间的交互和安卓环境搭建就不多说了,资料很多
贴代码:java代码
private FrameLayout mLayoutContainer = null;
private View mUnityView = null;
private final Handler handler=new Handler();
private boolean mSDKisLoaded = false;
@Override
protected void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
mLayoutContainer = (FrameLayout) findViewById(R.id.main_layout_container);
//onCreate显示闪屏
setSplashLayoutEnable(true);
}
public void setSplashLayoutEnable(boolean isEnable) {
final int INDEX_UNITY = 0;
final int INDEX_SPLASH = 1;
if (isEnable) {
LayoutInflater inflater = LayoutInflater.from(MainActivity.this);
View splashLayout = inflater.inflate(R.layout.activity_splash,null);
mLayoutContainer.addView(mUnityView, INDEX_UNITY, new FrameLayout.LayoutParams(FrameLayout.LayoutParams.MATCH_PARENT, FrameLayout.LayoutParams.MATCH_PARENT));
mLayoutContainer.addView(splashLayout, INDEX_SPLASH, new FrameLayout.LayoutParams(FrameLayout.LayoutParams.MATCH_PARENT, FrameLayout.LayoutParams.MATCH_PARENT));
} else {
mLayoutContainer.removeViewAt(INDEX_SPLASH);
mUnityView = null;
}
}
//这个方法在Unity启动类代码Start函数调用,隐藏闪屏
public void HideSplash() {
Log.d("GDSDK", "HideSplash: ");
handler.post(new Runnable() {
@Override
public void run() {
setSplashLayoutEnable(false);
}
});
}
@Override
public void setContentView(View view) {
//super.setContentView(view);
mUnityView = view;
}
layout/activity_main.xml
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context=".MainActivity"
android:background="#fff">
<FrameLayout
android:id="@+id/main_layout_container"
android:layout_width="match_parent"
android:layout_height="match_parent"></FrameLayout>
</RelativeLayout>
layout/activity_splash.xml drawable/splash文件夹配置闪屏图
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@drawable/splash">
</RelativeLayout>
来源:CSDN
作者:大城市下的蚂蚁
链接:https://blog.csdn.net/z625309640/article/details/80738584