我最近使用LibGDX制作了一款游戏,并在LinearLayout
中添加了MainActivity.java
,以便我可以在那里放置AdMob广告。一切都运行良好和花花公子,但问题是布局覆盖整个屏幕黑色,我无法加载或玩游戏。有没有办法让LinearLayout在屏幕的顶部(大多数广告都在哪里),并让它存在,同时允许游戏加载和播放?因为现在我的应用只是一个黑色的屏幕,顶部有一个广告。
这是MainActivity.java
package com.me.mygdxgame;
import android.os.Bundle;
import android.widget.LinearLayout;
import com.badlogic.gdx.backends.android.AndroidApplication;
import com.badlogic.gdx.backends.android.AndroidApplicationConfiguration;
import com.google.android.gms.ads.AdRequest;
import com.google.android.gms.ads.AdSize;
import com.google.android.gms.ads.AdView;
public class MainActivity extends AndroidApplication {
AdView adView;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
AndroidApplicationConfiguration cfg = new AndroidApplicationConfiguration();
cfg.useGL20 = true;
initialize(new MyGame(), cfg);
adView = new AdView(this);
adView.setAdSize(AdSize.BANNER);
adView.setAdUnitId("My Ad Unit ID");
setContentView(R.layout.main);
LinearLayout layout = (LinearLayout)findViewById(R.id.linearLayout);
layout.addView(adView);
if (layout ==null)
System.out.println("layout doesn't work");
if (layout !=null)
System.out.println("layout works");
if (adView == null)
System.out.println("adView doesn't work");
if (adView != null)
System.out.println("adView works");
AdRequest adRequest = new AdRequest.Builder()
.addTestDevice("My Device ID")
.build();
if (adRequest == null)
System.out.println("adRequest doesn't work");
if (adRequest != null)
System.out.println("adRequest works");
adView.loadAd(adRequest);
setContentView(layout);
}
public void onDestroy(){
if (adView != null) {
adView.destroy();
}
super.onDestroy();
}
}
这是main.xml:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/linearLayout"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:orientation="vertical" >
</LinearLayout>
答案 0 :(得分:1)
对于您给出的线性布局:
android:layout_width="fill_parent"
android:layout_height="fill_parent"
这导致它填满整个屏幕。你可以试试这个:
android:layout_width="fill_parent"
android:layout_height="wrap_content"
您还可以使用高度或宽度的某个dp值指定特定高度
答案 1 :(得分:0)
你的问题是libGDX AndroidApplication #initialize(你在#onCreate中调用)调用setContentView然后你替换两次。 #setContentView只能使用Activity的布局调用一次。