Google Play Game Services 和 LibGDX,如何在不显示标题栏的情况下集成?

Posted

技术标签:

【中文标题】Google Play Game Services 和 LibGDX,如何在不显示标题栏的情况下集成?【英文标题】:Google Play Game Services and LibGDX, how to integrate without showing a title bar? 【发布时间】:2013-07-30 01:56:46 【问题描述】:

使用此代码成功连接:

Tutorial to add Google Play Services to LibGDX

但是,我现在可以看到 android 标题栏。我已经尝试确定导致标题栏显示的确切原因(并且正在逐字使用教程中的代码)。

我认为这是因为在混合中有一个 MainActivity 构造函数,不知何故,这绕过了请求 noTitle 的 LibGDX 调用。

所以,我接下来尝试在我的 Manifest 中添加 NoTitleBar 的 Theme 功能,这很有效,但不知何故,我现在发生了方向变化(这不是清单中所说的)

任何人都可以在我的主项目或 Android 项目中看到我需要做什么来

1) 没有标题栏 2) 不允许改变方向 3) 连接 Google Play 服务

这是清单:

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="pgs.libgdx.liars.dice"
android:versionCode="1"
android:versionName="1.0" >

<uses-sdk android:minSdkVersion="5" android:targetSdkVersion="17" />

<application
    android:icon="@drawable/ic_launcher"
    android:label="@string/app_name" >

    <meta-data android:name="com.google.android.gms.games.APP_ID"
        android:value="@string/app_id" />

    <activity
        android:name=".MainActivity"
        android:label="@string/app_name"
        android:theme="@android:style/Theme.NoTitleBar.Fullscreen" >
        android:screenOrientation="landscape"
        android:configChanges="keyboard|keyboardHidden|orientation|screenSize">
        <intent-filter>
            <action android:name="android.intent.action.MAIN" />
            <category android:name="android.intent.category.LAUNCHER" />
        </intent-filter>
    </activity>
</application>

</manifest>

这是来自 Android 项目的相关代码:

public class MainActivity extends AndroidApplication implements GameHelperListener, GoogleInterface 

private GameHelper aHelper;

private OnLeaderboardScoresLoadedListener theLeaderboardListener;

public MainActivity()
    aHelper = new GameHelper(this);
    aHelper.enableDebugLog(true, "MYTAG");

    //create a listener for getting raw data back from leaderboard
    theLeaderboardListener = new OnLeaderboardScoresLoadedListener() 

        public void onLeaderboardScoresLoaded(int arg0, LeaderboardBuffer arg1,
                LeaderboardScoreBuffer arg2) 

            System.out.println("In call back");

            for(int i = 0; i < arg2.getCount(); i++)
                System.out.println(arg2.get(i).getScoreHolderDisplayName() + " : " + arg2.get(i).getDisplayScore());
            
        
    ;


@Override
public void onCreate(Bundle savedInstanceState) 
    super.onCreate(savedInstanceState);

    AndroidApplicationConfiguration cfg = new AndroidApplicationConfiguration();
    cfg.useGL20 = false;
    aHelper.setup(this);
    initialize(new LiarsDiceGame(this), cfg);

及主要相关代码:

public LiarsDiceGame()



public LiarsDiceGame(GoogleInterface anInterface ) 
    platformInterface = anInterface;
    //platformInterface.Login();


@Override
public void create()       
    float w = Gdx.graphics.getWidth();
    float h = Gdx.graphics.getHeight();

    camera = new OrthographicCamera(1, h/w);
    batch = new SpriteBatch();

    texture = new Texture(Gdx.files.internal("data/libgdx.png"));
    texture.setFilter(TextureFilter.Linear, TextureFilter.Linear);

    TextureRegion region = new TextureRegion(texture, 0, 0, 512, 275);

    sprite = new Sprite(region);
    sprite.setSize(0.9f, 0.9f * sprite.getHeight() / sprite.getWidth());
    sprite.setOrigin(sprite.getWidth()/2, sprite.getHeight()/2);
    sprite.setPosition(-sprite.getWidth()/2, -sprite.getHeight()/2);

其他一切都与使用 gdx-setup-ui.jar 设置 LibGDX 项目时完全相同

【问题讨论】:

在查看 logcat 时,我确实看到它提到“内容已显示,无法请求 FEATURE_NOTITLE”。我试图查看后端,但看不出为什么会像写的那样弹出。没有内容被调用,除非(我认为)因为调用 MainActivity,Manifest 被 android 使用,但是为什么方向不会被锁定? 【参考方案1】:

你的清单文件的语法有问题,在这一行:

android:theme="@android:style/Theme.NoTitleBar.Fullscreen" >

行尾的尖括号不应该在那里。

【讨论】:

呃...我在 Eclipse 中看不到任何东西(无论如何都没有报告错误)现在像冠军一样工作!

以上是关于Google Play Game Services 和 LibGDX,如何在不显示标题栏的情况下集成?的主要内容,如果未能解决你的问题,请参考以下文章

Google Play Game Services 和 LibGDX,如何在不显示标题栏的情况下集成?

如何将 Google Play 游戏服务添加到 AIR Game AS3?

Google Play 服务库更新和缺少符号 @integer/google_play_services_version

使用 google-play-services 进行 Proguard

如何为项目使用不同版本的 google-play-services 库

Google Play Services 9.2.1 和 google-services 插件