如何使用Xamarin/Monogame在Android应用程序的屏幕底部显示AdMob广告?

如何使用Xamarin/Monogame在Android应用程序的屏幕底部显示AdMob广告?,android,admob,xamarin,monogame,Android,Admob,Xamarin,Monogame,几个月来,我一直在用MonoGame开发一款游戏,几天前我刚刚发布了它。现在,我正试图让AdMob正常工作,这样我就可以发布该应用程序的免费lite版本。我是Android布局的新手,所以我不知道自己在做什么 我在网上搜索了一些关于使用MonoGame实现AdMob的信息后,在我的应用程序中显示了一则广告,但该应用程序始终显示在屏幕顶部。我很难找到任何关于重新定位MonoGame/Xamarin广告的信息 以下是有效的代码,并在屏幕顶部显示广告: 活动1.cs: public class Act

几个月来,我一直在用MonoGame开发一款游戏,几天前我刚刚发布了它。现在,我正试图让AdMob正常工作,这样我就可以发布该应用程序的免费lite版本。我是Android布局的新手,所以我不知道自己在做什么

我在网上搜索了一些关于使用MonoGame实现AdMob的信息后,在我的应用程序中显示了一则广告,但该应用程序始终显示在屏幕顶部。我很难找到任何关于重新定位MonoGame/Xamarin广告的信息

以下是有效的代码,并在屏幕顶部显示广告:

活动1.cs:

public class Activity1 : Microsoft.Xna.Framework.AndroidGameActivity
    {
        internal View adView = null;

        protected override void OnCreate(Bundle bundle)
        {
            base.OnCreate(bundle);
            Game1.Activity = this;
            var g = new Game1();
            FrameLayout fl = new FrameLayout(this);
            fl.AddView(g.Window);
            adView = AdMobHelper.CreateAdView(this, "<my id here>");
            var layoutParams = new ViewGroup.LayoutParams(Android.Views.ViewGroup.LayoutParams.FillParent, Android.Views.ViewGroup.LayoutParams.WrapContent);

            fl.AddView(adView, layoutParams);
            SetContentView(fl);
            AdMobHelper.RequestFreshAd(adView);
            g.Run();


        }
    }
public class Activity1 : Microsoft.Xna.Framework.AndroidGameActivity
    {
        internal View adView = null;

        protected override void OnCreate(Bundle bundle)
        {
            base.OnCreate(bundle);

            Game1.Activity = this;
            var g = new Game1();
            SetContentView(Resource.Layout.Main);
            View gameView = FindViewById(Resource.Id.GameView);
            ViewGroup parent = (ViewGroup)gameView.Parent;
            int index = parent.IndexOfChild(gameView);
            parent.RemoveView(gameView);
            parent.AddView(g.Window, index);
            adView = FindViewById(Resource.Id.Ad);
            parent = (ViewGroup)adView.Parent;
            index = parent.IndexOfChild(adView);
            parent.RemoveView(adView);
            var layoutParams = adView.LayoutParameters;
            adView = AdMobHelper.CreateAdView(this, "<my id here>");
            adView.LayoutParameters = layoutParams;
            parent.AddView(adView, index);
            AdMobHelper.RequestFreshAd(adView);
            g.Run();
        }
    }

虽然“错误输出”窗口中没有任何要检查的错误。。。有什么帮助吗?理想情况下,我只想在我的应用程序底部显示这个admob广告。谢谢

这是添加admob的代码。我做得很成功,可能对你有用

<com.google.ads.AdView
xmlns:ads="http://schemas.android.com/apk/lib/com.google.ads"
android:id="@+id/adView"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
ads:adSize="BANNER"
ads:adUnitId="Your Admob 15 digit alpha numeric ID"
/>
这是我的工作。有关更多详细信息,请访问admob网站

解决方案#2

没有任何编码的一种快速方法是只将xmlns添加到application元素中,并将ads:loadAdOnCreate=“true”添加到AndroidManifest.xml中的
adView
元素中。这应该适用于您,我以这种方式使用它没有问题

public class Activity1 : Microsoft.Xna.Framework.AndroidGameActivity
{
    internal View adView = null;

    protected override void OnCreate(Bundle bundle)
    {
        base.OnCreate(bundle);
        Game1.Activity = this;
        var g = new Game1();
        FrameLayout fl = new FrameLayout(this);
        LinearLayout ll = new LinearLayout(this);
        ll.setOrientation(LinearLayout.VERTICAL);
        ll.setGravity(Gravity.BOTTOM);
        fl.AddView(g.Window);
        adView = AdMobHelper.CreateAdView(this, "<my id here>");
        ll.addView(adView);
        fl.AddView(ll);
        SetContentView(fl);
        AdMobHelper.RequestFreshAd(adView);
        g.Run();


    }
}
公共类活动1:Microsoft.Xna.Framework.AndroidGameActivity
{
内部视图adView=null;
创建时受保护的覆盖无效(捆绑包)
{
base.OnCreate(bundle);
游戏1.活动=此;
var g=新游戏1();
FrameLayout fl=新的FrameLayout(本);
LinearLayout ll=新的LinearLayout(本);
ll.设置方向(线性布局、垂直);
ll.设置重力(重力.底部);
fl.AddView(g.Window);
adView=AdMobHelper.CreateAdView(此“”);
ll.addView(adView);
fl.AddView(ll);
SetContentView(fl);
AdMobHelper.RequestFreshAd(adView);
g、 Run();
}
}
<com.google.ads.AdView
xmlns:ads="http://schemas.android.com/apk/lib/com.google.ads"
android:id="@+id/adView"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
ads:adSize="BANNER"
ads:adUnitId="Your Admob 15 digit alpha numeric ID"
/>
AdView adview = (AdView)findViewById(R.id.adView);
AdRequest re = new AdRequest();
re.setTesting(true);
adview.loadAd(re);
public class Activity1 : Microsoft.Xna.Framework.AndroidGameActivity
{
    internal View adView = null;

    protected override void OnCreate(Bundle bundle)
    {
        base.OnCreate(bundle);
        Game1.Activity = this;
        var g = new Game1();
        FrameLayout fl = new FrameLayout(this);
        LinearLayout ll = new LinearLayout(this);
        ll.setOrientation(LinearLayout.VERTICAL);
        ll.setGravity(Gravity.BOTTOM);
        fl.AddView(g.Window);
        adView = AdMobHelper.CreateAdView(this, "<my id here>");
        ll.addView(adView);
        fl.AddView(ll);
        SetContentView(fl);
        AdMobHelper.RequestFreshAd(adView);
        g.Run();


    }
}