7

我目前正在将 AdMob 集成到我的 Android 游戏中。

我很难将智能横幅集成到基于框架布局的布局中,因为它们在不同设备上占用不同数量的屏幕空间。

例如,如果我在 Acer A500 (MDPI 1280x800) 上显示智能横幅,我会收到一个 1280x90px 的尺寸,而在我的 Nexus 7 上,我会收到一个 1279x66px (TVDPI 1280x800) 和 Galaxy Nexus (HDPI 1280x720) 的横幅1196x64 像素。

根据 AdMob 文档,考虑到文档中给出的值是 dp,这可能是可以理解的行为: https ://developers.google.com/mobile-ads-sdk/docs/admob/smart-banners

但是,这种行为对我来说是个大问题,因为在 1200x800 像素 MDPI 屏幕上高度为 90 像素的智能横幅比在 HDPI 屏幕上高度为 64 像素的智能横幅占用了更多的屏幕空间(参见下面的屏幕截图) .

所以,这是我的问题: - 我至少应该为智能横幅保留多少空间?- 有没有人尝试过类似的事情,你是如何处理的?

注意:不幸的是,目前不能选择使用不同于 framelayout 的布局。此外,XML 布局不能用于集成广告。

此致,

洛伦兹

截图:

http://imgur.com/qGAk77Y (A500)

4

2 回答 2

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 small)。

如果您需要以编程方式执行此操作,您可以通过以下方式获取屏幕尺寸:

Configuration config = activity.getResources().getConfiguration();
int screenlayout = config.screenLayout;

并进行比较,请使用 Configuration.SCREENLAYOUT_xxx 。

于 2016-01-18T07:01:34.620 回答
0
  1. 不要以像素为单位思考。考虑 dp(与密度无关的像素)
  2. 预留最大的空间。例如 1280dp x 90pd 使用包含布局并嵌入您的 AdView。
于 2013-07-29T22:04:06.883 回答