changing admob banner size dynamically
Solution 1
If your layout is define in a xml, you can create one layout per screen size (layout-xlarge/mylayout.xml, layout-large/mylayout.xml, layout-normal/mylayout.xml, etc...)
More info here : http://developer.android.com/guide/practices/screens_support.html
Don't look at density, because, a 10.1" tablet has a medium density, but a 4.3" phone with a 480x850 resolution will have a high density. Use screen size instead (xlarge large normal small).
If you need to do it programatically, you can get the screen size with this :
Configuration config = activity.getResources().getConfiguration();
int screenlayout = config.screenLayout;
and to compare, use Configuration.SCREENLAYOUT_xxx .
Solution 2
The most recent AdMob SDK includes AdSize.SMART_BANNER which enables the best size matched ad for the device.
I was using an older version myself and didn't knew about this feature :D
MBP
Updated on June 14, 2022Comments
-
MBP almost 2 years
Here is the thing, as you might know Admob has a
AdSize.*
function, where u putBanner
to show banner ads, and AD_banner` for tablet banners, what i want to do is take a screen size of a device so that i could throw it in my if statement and then put the right banner for right device, i hope i was clear enough.So anyone can tell me how can i get the screen size of device? Thank u ////////// Here's what i have done so farDisplayMetrics dm = new DisplayMetrics(); getWindowManager().getDefaultDisplay().getMetrics(dm); if (dm.density==DisplayMetrics.DENSITY_HIGH) { AdView adView = new AdView(this, AdSize.BANNER,s); LinearLayout layout = (LinearLayout)findViewById(R.id.admob); layout.addView(adView); adView.loadAd(new AdRequest()); } if (dm.density==DisplayMetrics.DENSITY_DEFAULT || dm.density==DisplayMetrics.DENSITY_LOW ) { AdView adView = new AdView(this, AdSize.BANNER,s); LinearLayout layout = (LinearLayout)findViewById(R.id.admob); layout.addView(adView); adView.loadAd(new AdRequest()); } if(dm.density==DisplayMetrics.DENSITY_MEDIUM) { AdView adView = new AdView(this, AdSize.IAB_BANNER,s); LinearLayout layout = (LinearLayout)findViewById(R.id.admob); layout.addView(adView); adView.loadAd(new AdRequest()); }