在屏幕上创建AdView填充空白区

时间:2018-06-15 22:39:56

标签: android layout adview

我想创建一个能够计算父容器左侧空白空间并将其大小设置为适合它的AdView。

我有AdView的所有活动都扩展了一个类,这个类提供了创建广告的方法......我将举一个例子

布局:

<?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:gravity="center_horizontal"
    android:orientation="vertical"
    android:paddingLeft="@dimen/activity_horizontal_margin"
    android:paddingRight="@dimen/activity_horizontal_margin"
    android:paddingTop="@dimen/activity_vertical_margin">


    <LinearLayout
        android:id="@+id/loginForm"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_marginTop="@dimen/smallMargin"
        android:orientation="vertical">


        <EditText
            android:id="@+id/textUsername"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:hint="@string/prompt_email"
            android:inputType="textAutoCorrect"
            android:maxLines="1"
            android:singleLine="true" />


        <EditText
            android:id="@+id/textPassword"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:hint="@string/prompt_password"
            android:imeActionId="6"
            android:imeActionLabel="@string/action_sign_in"
            android:imeOptions="actionUnspecified"
            android:inputType="textPassword"
            android:maxLines="1"
            android:singleLine="true" />


        <Button
            android:id="@+id/loginButton"
            style="?android:textAppearanceSmall"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_gravity="center"
            android:layout_marginTop="16dp"
            android:text="@string/action_sign_in"
            android:textStyle="bold" />

    </LinearLayout>

    <com.google.android.gms.ads.AdView

        android:id="@+id/adView"
        android:layout_width="match_parent"
        android:layout_height="0dp"
        android:layout_weight="1"

        ads:adUnitId="@string/banner_ad_unit_id" />

</LinearLayout>

因为adview将其高度设置为0dp并且权重设置为1 ... android将自动用它填充屏幕上的剩余空间。所以在我给布局充气之后:

    this.adView = (AdView) findViewById(R.id.adView);
            if (this.adView != null) {
                AdRequest adRequest = new AdRequest.Builder().build();

              int width =  this.adView.getWidth();
              int height = this.adView.getHeight();
              //  AdSize adsize = new AdSize(width, height);
              // this.adView.setAdSize(adsize);
                this.adView.loadAd(adRequest);
}

问题是widthheight总是0 ... 并不重要我在屏幕上有多少空间

如何才能在屏幕上留下真实空间

0 个答案:

没有答案