0

我在屏幕底部显示横幅。

这是 XML 代码:

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@+id/layoutAdView"
    android:orientation="vertical"
    android:layout_width="fill_parent"
    android:layout_height="50dp" 
    android:layout_alignParentBottom="true"
    android:gravity="center_horizontal" >   
</RelativeLayout>

有时我会收到广告请求已完成,但我没有看到横幅。

如何检查相对布局?如果在相对布局中显示了某些东西,那么它应该给我 true else false 。

4

1 回答 1

1

假设您使用的是 Google Admob SDK,因为您尚未指定您使用的广告服务器软件。

您可以将 AdListener 附加到屏幕上的广告空间,并在添加失败时处理您想要执行的操作。

import android.content.Context;
import android.util.Log;
import android.widget.Toast;

import com.google.ads.Ad;
import com.google.ads.AdListener;
import com.google.ads.AdRequest;
import com.google.ads.AdRequest.ErrorCode;

public class AdmobAdListener implements AdListener {

    Context context;
    AdRequest adRequest;

    public AdmobAdListener(Context context, AdRequest adRequest) {
        this.context = context;
        this.adRequest = adRequest;
    }

    /** The log tag. */
    private static final String LOG_TAG = "AdmobAdListener";

    /** Called when an ad is clicked and about to return to the application. */
    public void onDismissScreen(Ad arg0) {
         Log.d(LOG_TAG, "onDismissScreen");
         Toast.makeText(context, "onDismissScreen",
         Toast.LENGTH_SHORT).show();

    }

    /** Called when an ad was not received. */
    public void onFailedToReceiveAd(Ad ad, ErrorCode error) {
        String message = LOG_TAG + " onFailedToReceiveAd (" + error + ")";
        Log.d(LOG_TAG, message);
        Toast.makeText(context, message, Toast.LENGTH_SHORT).show();
        ad.loadAd(adRequest);
    }

    /**
     * Called when an ad is clicked and going to start a new Activity that will
     * leave the application (e.g. breaking out to the Browser or Maps
     * application).
     */
    public void onLeaveApplication(Ad ad) {
         Log.d(LOG_TAG, "onLeaveApplication");
         Toast.makeText(context, "onLeaveApplication", Toast.LENGTH_SHORT).show();
    }

    /**
     * Called when an Activity is created in front of the app (e.g. an
     * interstitial is shown, or an ad is clicked and launches a new Activity).
     */
    public void onPresentScreen(Ad ad) {
         Log.d(LOG_TAG, "onPresentScreen");
         Toast.makeText(context, "onPresentScreen",
         Toast.LENGTH_SHORT).show();
    }

    /** Called when an ad is received. */
    public void onReceiveAd(Ad ad) {
         Log.d(LOG_TAG, "onReceiveAd");
         Toast.makeText(context, "onReceiveAd", Toast.LENGTH_SHORT).show();
    }

}

在布局 XML 文件中使用此标记

<com.google.ads.AdView 
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:gravity="center"
        android:id="@+id/adMob"
        ads:adUnitId="abcdefghighlmnop123"
        ads:adSize="BANNER"/>
于 2012-11-22T16:22:50.970 回答