android - AndEngine:使用LayoutGameActivity时黑屏

标签 android andengine

我曾经在我的应用程序中使用 SimpleBaseGameActivity ,一切都很好,但现在我想在应用程序中添加一些广告,所以我尝试使用 LayoutGameActivity 。但我得到的渲染 View 完全是黑色的,我不知道为什么。这是我的代码:

public class AcGame extends LayoutGameActivity {
    [...]
    @Override
    protected int getLayoutID() {
        return R.layout.ad;
    }

    @Override
    protected int getRenderSurfaceViewID() {
        return R.id.layout_render;
    }

    @Override
    public EngineOptions onCreateEngineOptions() {
        [...]
        return new EngineOptions(true, ScreenOrientation.PORTRAIT_FIXED, resolution, camera);
    }

    @Override
    public void onCreateResources(OnCreateResourcesCallback pOnCreateResourcesCallback) throws Exception {
        createResources();
        pOnCreateResourcesCallback.onCreateResourcesFinished();
    }

    @Override
    public void onCreateScene(OnCreateSceneCallback pOnCreateSceneCallback) throws Exception {
        pOnCreateSceneCallback.onCreateSceneFinished(createScene());
    }

    @Override
    public void onPopulateScene(Scene pScene, OnPopulateSceneCallback pOnPopulateSceneCallback) throws Exception {
        pOnPopulateSceneCallback.onPopulateSceneFinished();
    }

这就是我的布局:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
              android:layout_width="fill_parent"
              android:layout_height="fill_parent">
    <LinearLayout
            android:orientation="vertical"
            android:layout_width="fill_parent"
            android:layout_height="wrap_content"
            android:gravity="top"
            android:id="@+id/layout_ad"
            >
        <Button
                android:layout_width="fill_parent"
                android:layout_height="fill_parent"
                android:text="Ad Sample"/>
    </LinearLayout>
    <org.andengine.opengl.view.RenderSurfaceView
            android:orientation="vertical"
            android:layout_width="fill_parent"
            android:layout_height="fill_parent"
            android:gravity="center"
            android:id="@+id/layout_render"
            />

</LinearLayout>

当我尝试调试时,我可以看到 EngineOptions 正在创建,但没有调用 LayoutGameActivity 的任何方法(onCreateResourcesonCreateScene onPopulateScene)。有人可以告诉我我错过了什么吗?

UPD:我发现如果向下移动 xml 中的按钮,场景将显示:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
              android:layout_width="fill_parent"
              android:layout_height="fill_parent">
    <org.andengine.opengl.view.RenderSurfaceView
            android:orientation="vertical"
            android:layout_width="fill_parent"
            android:layout_height="fill_parent"
            android:gravity="center"
            android:id="@+id/layout_render"
            />
    <LinearLayout
            android:orientation="vertical"
            android:layout_width="fill_parent"
            android:layout_height="wrap_content"
            android:gravity="top"
            android:id="@+id/layout_ad"
            >
        <Button
                android:layout_width="fill_parent"
                android:layout_height="fill_parent"
                android:text="Ad Sample"/>
    </LinearLayout>

</LinearLayout>

但现在我看不到我的按钮,看起来我仍在使用 SimpleBaseGameActivity。

最佳答案

我找到了解决方案:如果您想使用(Simple)LayoutGameActivity,则必须使用RelativeLayout。 另外,如果您使用 LayoutGameActivity 而不是 SimpleLayoutGameActivity,请不要忘记使用回调!

关于android - AndEngine:使用LayoutGameActivity时黑屏,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12972803/

相关文章:

java - 如何创建锁屏

android - 使用 andEngine 的级别选择器。每个东西都是黑色的?

android - RoboGuice:如何在我的自定义类中使用 RoboGuice 提供的注入(inject)?

android - 如何正确使用 setProgressDrawable()?

android - 膨胀 ListView 时出错

android - sqlite 查询中的语法错误?

android - 是否可以在其他应用程序中充气 RemoteViews?

android - 无法将 AndEngine 添加到 Android Studio

android - GL 最大纹理尺寸策略

android - 按下 'power button' 时 AndEngine 应用程序重新启动