Я добавил баннер Admob для сцены в своем приложении, используя пример: https://forums.xamarin.com/discussion/51779/cocossahrp-and-admob.Размещение баннера Admob в нижней части экрана
Объявление отображается в верхней части экрана, но я хочу отобразить его внизу. Я не нашел ни одного примера CocosSharp, но я нашел его для cocos2d-x (последний пост): http://discuss.cocos2d-x.org/t/admob-bottom-placement-tutorial-v3-0/13854/11
Я пробовал это с моим кодом (см. Ниже), но не могу заставить его работать. Что-то, что я заметил, это если я изменяю LayoutParams от 200 до size.Y рекламный баннер появляется в середине экрана, а не сверху, но это происходит даже тогда, когда AlignParentBottom или Gravity.Bottom не используется.
Использование RelativeLayout с AddRule:
Android.Graphics.Point size = new Android.Graphics.Point();
prActivity.WindowManager.DefaultDisplay.GetSize(size);
RelativeLayout.LayoutParams adParams = new RelativeLayout.LayoutParams(
size.X,
200);
var bannerAd = new AdView(prActivity);
bannerAd.AdSize = AdSize.SmartBanner;
bannerAd.AdUnitId = "ca-app-pub-3940256099942544/6300978111"; // Test UnitId
bannerAd.LayoutParameters = new RelativeLayout.LayoutParams(ViewGroup.LayoutParams.WrapContent, ViewGroup.LayoutParams.WrapContent);
var lcRequestbuilder = new AdRequest.Builder();
bannerAd.LoadAd(lcRequestbuilder.Build());
adParams.AddRule(LayoutRules.AlignParentBottom); // Rule to place ad at the bottom
prActivity.AddContentView(bannerAd, adParams);
ScheduleOnce(t =>
{
bannerAd.BringToFront();
}, 3f);
Используя LinearLayout с гравитацией:
Android.Graphics.Point size = new Android.Graphics.Point();
prActivity.WindowManager.DefaultDisplay.GetSize(size);
LinearLayout.LayoutParams adParams = new LinearLayout.LayoutParams(
size.X,
200);
var bannerAd = new AdView(prActivity);
bannerAd.AdSize = AdSize.SmartBanner;
bannerAd.AdUnitId = "ca-app-pub-3940256099942544/6300978111"; // Test UnitId
bannerAd.LayoutParameters = new LinearLayout.LayoutParams(ViewGroup.LayoutParams.WrapContent, ViewGroup.LayoutParams.WrapContent);
var lcRequestbuilder = new AdRequest.Builder();
bannerAd.LoadAd(lcRequestbuilder.Build());
adParams.Gravity = GravityFlags.Bottom; // Gravity Flag to place ad at the bottom
prActivity.AddContentView(bannerAd, adParams);
ScheduleOnce(t =>
{
bannerAd.BringToFront();
}, 3f);