我想创建一个能够计算父容器左侧空白空间并将其大小设置为适合它的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);
}
问题是width
,height
总是0 ...
并不重要我在屏幕上有多少空间
如何才能在屏幕上留下真实空间