
最后,我在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(以编程方式)所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)