Admob大小不会填充父级

时间:2013-12-30 10:44:42

标签: android android-layout admob

我将发布下面的代码,我的问题是这个,在模拟器(Genymotion Galaxy Nexus 4.2.2)中,admob横幅拉伸并填充其父级:

enter image description here

在真实设备(Galaxy Nexus 4.3)中,admob横幅不会填充其父级的整个宽度,两侧留下两条白色条纹:

enter image description here

这是布局:

<?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);
    }

我做错了什么?我已经检查了很多,但我无法弄明白......

3 个答案:

答案 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" />