我将发布下面的代码,我的问题是这个,在模拟器(Genymotion Galaxy Nexus 4.2.2)中,admob横幅拉伸并填充其父级:
在真实设备(Galaxy Nexus 4.3)中,admob横幅不会填充其父级的整个宽度,两侧留下两条白色条纹:
这是布局:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:ads="http://schemas.android.com/apk/res-auto"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical" >
<WebView
android:id="@+id/webview"
android:layout_width="fill_parent"
android:layout_height="0px"
android:layout_weight="1"/>
<com.google.android.gms.ads.AdView android:id="@+id/adView"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
ads:adUnitId="ca-app-pub-1470640527107044/6766749615"
ads:adSize="SMART_BANNER"/>
</LinearLayout>
这是活动的onCreate:
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
requestWindowFeature(Window.FEATURE_INDETERMINATE_PROGRESS);
setContentView(R.layout.activity_detail);
ActionBar actionBar = getSupportActionBar();
actionBar.setDisplayHomeAsUpEnabled(true);
WebView myWebView = (WebView) findViewById(R.id.webview);
WebSettings webSettings = myWebView.getSettings();
webSettings.setJavaScriptEnabled(true);
Bundle b = getIntent().getExtras();
url = b.getString("url");
myWebView.loadUrl(url);
myWebView.setWebViewClient(new MyWebViewClient());
// Initiate a generic request.
AdRequest adRequest = new AdRequest.Builder().build();
adView = (AdView) findViewById(R.id.adView);
adView.loadAd(adRequest);
}
我做错了什么?我已经检查了很多,但我无法弄明白......
答案 0 :(得分:4)
答案在AdMob website上(关于智能横幅尺寸):
当图片广告不占用横幅的整个分配空间时,我们会将图像居中并使用六边形纺织填充物(见图)填充剩余空间。请注意,AdSense回填广告将居中并具有“透明”填充。
第二张图片包含AdSense广告,因此填充内容是透明的。
答案 1 :(得分:4)
我遇到了同样的问题,然后我将adSize更改为ads:adSize="SMART_BANNER"
,这就是我的AdView块在xml文件中的样子。
<com.google.android.gms.ads.AdView
android:id="@+id/adView"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerHorizontal="true"
android:layout_alignParentBottom="true"
ads:adSize="SMART_BANNER"
ads:adUnitId="@string/banner_ad_unit_id">
</com.google.android.gms.ads.AdView>
答案 2 :(得分:0)
确保使用新引入的AdMob Adaptive Banners。它们不需要您调整,并且会利用所有可用的宽度。
将它们嵌入到如下所示的FrameLayout中
<FrameLayout
android:id="@+id/adFragment"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_alignParentBottom="true"
android:layout_centerHorizontal="true"
android:layout_gravity="center|bottom" />