偏好活动中的广告“空间不足,无法展示广告!想要:<480, 75>,有:<432, 1073741823>"
I'm trying to show an ad in the preference activity but it never appears. Logcat always shows the message "Not enough space to show ad! Wants: <480, 75>, Has: <432, 1073741823>"
This is how I create the ad. I have a custom preference with the ad
public class AdmobPreference extends Preference {
public AdmobPreference(Context context, AttributeSet attrs, int defStyle) {super (context, attrs, defStyle);}
public AdmobPreference(Context context, AttributeSet attrs) {super(context, attrs);}
public AdmobPreference(Context context) {super(context);}
@Override
protected View onCreateView(ViewGroup parent) {
// this will create the linear layout defined in ads_layout.xml
View view = super.onCreateView(parent);
// the context is a PreferenceActivity
Activity activity = (Activity)getContext();
// Create the adView
AdView adView = new AdView(activity, AdSize.BANNER, "MY KEY");
((LinearLayout)view).addView(adView);
// Initiate a generic request to load it with an ad
AdRequest request = new AdRequest();
adView.loadAd(request);
return view;
}
}
Then I have a layout the ad is put into
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:ads="http://schemas.android.com/apk/lib/com.google.ads"
android:orientation="vertical"
android:layout_width="wrap_content"
android:layout_height="wrap_content">
</LinearLayout>
And it is put into the the preferences xml with this line:
<com.my.package.name android:layout="@layout/admob_preference" />
I can change it so the layout is set to width=480dip height=75dip instead of wrap_content. This does display the ad but it is pushed to the right of the screen and takes up a little less than half the size it's meant to (and cuts off half the ad).
解决方案This can easily be solved by using AdSize.FLUID
or AdSize.SMART_BANNER
as it dynamically adjusts the width and height of the AD.
for more info AdSize
相关文章