android - AdMob Banners and GLSurfaceview (programmatically) -
finally, have banner ad @ top of glsurfaceview. however, appears black background takes whole width of screen , covers top of game area (i should point out play area moved downwards little bottom missing).

what need move banner bottom of screen and, keep central , remove black background looks this:

i tried use xml getting lot of errors switched doing in java (and managed far) - quality information on how glsurfaceview lacking imho i'm hoping can tell me i'm going wrong.
code
here oncreate() method:
@override protected void oncreate(bundle savedinstancestate) { super.oncreate(savedinstancestate); // create ad. adview = new adview(this); adview.setadsize(adsize.banner); adview.setadunitid(ad_unit_id); // add adview view hierarchy. view have no size // until ad loaded. linearlayout layout = new linearlayout(this); layout.setorientation(linearlayout.vertical); // create ad request. // test ads on physical device. adrequest adrequest = new adrequest.builder() .addtestdevice(testdeviceid) .build(); // start loading ad in background. adview.loadad(adrequest); //request full screen requestwindowfeature(window.feature_no_title); getwindow().setflags(windowmanager.layoutparams.flag_fullscreen, windowmanager.layoutparams.flag_fullscreen); //create displaymetrics object pixel width , height metrics = new displaymetrics(); getwindowmanager().getdefaultdisplay().getmetrics(metrics); width = metrics.widthpixels; height = metrics.heightpixels; //create , set gl view (opengl view) myview = new myglsurfaceview(mainactivity.this); layout.addview(adview); layout.addview(myview); //create copy of bundle if (savedinstancestate != null){ newbundle = new bundle(savedinstancestate); } //set main renderer setcontentview(layout); } when banner changes, appears 'flicker', can deal in separate question.
use relativelayout or framelayout parent layout, define layout parameters adview positioned @ bottom center of screen this. below solution:
@override protected void oncreate(bundle savedinstancestate) { super.oncreate(savedinstancestate); // create ad. adview = new adview(this); adview.setadsize(adsize.banner); adview.setadunitid(ad_unit_id); adview.setbackgroundcolor(color.transparent); // add adview view hierarchy. view have no size // until ad loaded. relativelayout layout = new relativelayout(this); layout.setlayoutparams(new layoutparams(layoutparams.match_parent, layoutparams.match_parent)); // create ad request. // test ads on physical device. adrequest adrequest = new adrequest.builder() .addtestdevice(testdeviceid) .build(); // start loading ad in background. adview.loadad(adrequest); //request full screen requestwindowfeature(window.feature_no_title); getwindow().setflags(windowmanager.layoutparams.flag_fullscreen, windowmanager.layoutparams.flag_fullscreen); //create displaymetrics object pixel width , height metrics = new displaymetrics(); getwindowmanager().getdefaultdisplay().getmetrics(metrics); width = metrics.widthpixels; height = metrics.heightpixels; //create , 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 copy of bundle if (savedinstancestate != null){ newbundle = new bundle(savedinstancestate); } //set main renderer setcontentview(layout); }
Comments
Post a Comment