我目前正在将AdMob整合到我的Android游戏中。
我很难将智能横幅集成到基于framelayout的布局中,因为它们会在不同的设备上占用不同数量的屏幕空间。
例如,如果我在Acer A500(MDPI 1280x800)上显示智能横幅,我会收到1280x90px的尺寸,而在我的Nexus 7上,我会收到1279x66px(TVDPI 1280x800)和我的Galaxy Nexus( HDPI 1280x720),1196x64px。
根据AdMob文档,考虑到文档中给出的值是dp,这可能是可以理解的行为: https://developers.google.com/mobile-ads-sdk/docs/admob/smart-banners
然而,这种行为对我来说是一个很大的问题,因为在1200x800px MDPI屏幕上高度为90px的智能平板电脑比HDPI屏幕上高度为64px的智能横幅占用更多的屏幕空间(参见截图如下)。
所以,这是我的问题: - 至少对于智能横幅,我应该保留多少空间? - 有没有人尝试过类似的东西,你是怎么处理的?
注意:不幸的是,目前使用与framelayout不同的布局不是一种选择。此外,XML布局不能用于集成广告。
最诚挚的问候,
洛伦茨
截图:
http://imgur.com/qGAk77Y(A500)
答案 0 :(得分:1)
如果您的布局是在xml中定义的,则可以为每个屏幕大小创建一个布局(layout-xlarge / mylayout.xml,layout-large / mylayout.xml,layout-normal / mylayout.xml等...)
此处有更多信息:http://developer.android.com/guide/practices/screens_support.html
不要看密度,因为10.1英寸的平板电脑具有中等密度,但具有480x850分辨率的4.3英寸手机将具有高密度。请改用屏幕尺寸(xlarge large normal normal)。
如果您需要以编程方式执行此操作,则可以使用以下方法获取屏幕大小:
Configuration config = activity.getResources().getConfiguration();
int screenlayout = config.screenLayout;
并进行比较,使用Configuration.SCREENLAYOUT_xxx。
答案 1 :(得分:0)