android-AdMob横幅广告和GLSurfaceview(以编程方式)

概述最后,我在GLSurfaceview的顶部有一个横幅广告.但是,它的背景为黑色,占据了整个屏幕的整个宽度,并像这样覆盖了我游戏区域的顶部(我还要指出,游戏区域也向下移动了一点,因此底部也丢失了).我需要做的是将横幅移动到屏幕底部,并将其居中并删除此黑色背景,因此它看起来像这样:我尝试

最后,我在GLSurfacevIEw的顶部有一个横幅广告.但是,它的背景为黑色,占据了整个屏幕的整个宽度,并像这样覆盖了我游戏区域的顶部(我还要指出,游戏区域也向下移动了一点,因此底部也丢失了) .

我需要做的是将横幅移动到屏幕底部,并将其居中并删除此黑色背景,因此它看起来像这样:

我尝试使用XML,但是遇到了很多错误,所以我改用Java完全完成了这一工作(并设法做到了这一点)-但是有关如何使用GLSurfaceVIEw做到这一点的质量信息缺乏恕我直言,所以我希望有人可以告诉我我要去哪里错了.

这是我的onCreate()方法:

    @OverrIDe    protected voID onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        // Create an ad.        adVIEw = new AdVIEw(this);        adVIEw.setAdSize(AdSize.BANNER);        adVIEw.setAdUnitID(AD_UNIT_ID);        // Add the AdVIEw to the vIEw hIErarchy. The vIEw will have no size        // until the ad is loaded.        linearLayout layout = new linearLayout(this);        layout.setorIEntation(linearLayout.VERTICAL);        // Create an ad request.        // get test ads on a physical device.        AdRequest adRequest = new AdRequest.Builder()          .addTestDevice(Testdeviceid)          .build();        // Start loading the ad in the background.        adVIEw.loadAd(adRequest);        //Request full screen        requestwindowFeature(Window.FEATURE_NO_Title);        getwindow().setFlags(WindowManager.LayoutParams.FLAG_FulLSCREEN,         WindowManager.LayoutParams.FLAG_FulLSCREEN);        //Create a displayMetrics object to get pixel wIDth and height        metrics = new displayMetrics();        getwindowManager().getDefaultdisplay().getMetrics(metrics);        wIDth = metrics.wIDthPixels;        height = metrics.heightPixels;        //Create and set GL vIEw (OpenGL VIEw)        myVIEw = new MyGLSurfaceVIEw(MainActivity.this);        layout.addVIEw(adVIEw);        layout.addVIEw(myVIEw);        //Create a copy of the Bundle        if (savedInstanceState != null){            newBundle = new Bundle(savedInstanceState);                 }        //Set main renderer                     setContentVIEw(layout);}

横幅更改时,它也似乎“闪烁”,但是我可以在另一个问题中解决.

解决方法:

使用relativeLayout或FrameLayout作为父级布局,然后像这样定义adVIEw的布局参数,使其位于屏幕的底部中心.下面是一个解决方案:

 @OverrIDe    protected voID onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        // Create an ad.        adVIEw = new AdVIEw(this);        adVIEw.setAdSize(AdSize.BANNER);        adVIEw.setAdUnitID(AD_UNIT_ID);        adVIEw.setBackgroundcolor(color.transparent);         // Add the AdVIEw to the vIEw hIErarchy. The vIEw will have no size        // until the ad is loaded.        relativeLayout layout = new relativeLayout(this);        layout.setLayoutParams(new LayoutParams(LayoutParams.MATCH_PARENT,    LayoutParams.MATCH_PARENT));        // Create an ad request.        // get test ads on a physical device.        AdRequest adRequest = new AdRequest.Builder()          .addTestDevice(Testdeviceid)          .build();        // Start loading the ad in the background.        adVIEw.loadAd(adRequest);        //Request full screen        requestwindowFeature(Window.FEATURE_NO_Title);        getwindow().setFlags(WindowManager.LayoutParams.FLAG_FulLSCREEN,         WindowManager.LayoutParams.FLAG_FulLSCREEN);        //Create a displayMetrics object to get pixel wIDth and height        metrics = new displayMetrics();        getwindowManager().getDefaultdisplay().getMetrics(metrics);        wIDth = metrics.wIDthPixels;        height = metrics.heightPixels;        //Create and set GL vIEw (OpenGL VIEw)        myVIEw = new MyGLSurfaceVIEw(MainActivity.this);     relativeLayout.LayoutParams adParams =                 new relativeLayout.LayoutParams(relativeLayout.LayoutParams.WRAP_CONTENT,                         relativeLayout.LayoutParams.WRAP_CONTENT);            adParams.addRule(relativeLayout.AliGN_PARENT_BottOM);            adParams.addRule(relativeLayout.CENTER_HORIZONTAL);        layout.addVIEw(myVIEw);        layout.addVIEw(adVIEw, adParams);        //Create a copy of the Bundle        if (savedInstanceState != null){            newBundle = new Bundle(savedInstanceState);                 }        //Set main renderer                     setContentVIEw(layout);}
总结

以上是内存溢出为你收集整理的android-AdMob横幅广告和GLSurfaceview(以编程方式)全部内容,希望文章能够帮你解决android-AdMob横幅广告和GLSurfaceview(以编程方式)所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/web/1076584.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2022-05-26
下一篇2022-05-26

发表评论

登录后才能评论

评论列表(0条)

    保存