Android AdMob 横幅添加到 Canvas 之上?

标签 android canvas admob

我使用 Canvas 创建了一个小游戏,现在我想在 Canvas 上显示 AdMob 广告。 AdMob 网站上的示例建议我执行以下操作:

 // Create an ad.
adView = new AdView(this);
adView.setAdSize(AdSize.BANNER);
adView.setAdUnitId(AD_UNIT_ID);

// Add the AdView to the view hierarchy. The view will have no size
// until the ad is loaded.
LinearLayout layout = (LinearLayout) findViewById(R.id.linearLayout);
layout.addView(adView);

但是,我将 contentView 设置为我创建的自定义 Canvas ,如下所示:

setContentView(new CanvasView(this));

Canvas View :

public class CanvasView extends View {
    public CanvasView(Context context) {
        super(context);
        // TODO Auto-generated constructor stub
    }
...

如何在我的自定义 Canvas 上展示 AdMob 广告?

最佳答案

您必须将包含广告和 Canvas 的父布局设置为内容 View 。修改您的代码如下:

@Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);

    // Create an ad.
    adView = new AdView(this);
    adView.setAdSize(AdSize.BANNER);
    adView.setAdUnitId(AD_UNIT_ID);

    // Add the AdView to the view hierarchy. The view will have no size
    // until the ad is loaded.
    RelativeLayout layout = new RelativeLayout(this);
    layout.setLayoutParams(new LayoutParams(LayoutParams.MATCH_PARENT,    LayoutParams.MATCH_PARENT));
    // Create an ad request.
    // get test ads on a physical device.
    AdRequest adRequest = new AdRequest.Builder()
      .addTestDevice(TestDeviceID)
      .build();

    // Start loading the ad in the background.
    adView.loadAd(adRequest);

    //Optional - Request full screen
    requestWindowFeature(Window.FEATURE_NO_TITLE);
    getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN, 
    WindowManager.LayoutParams.FLAG_FULLSCREEN);

    //Create canvas view
   View myView = new CanvasView(this);

  //define ad view parameters
 RelativeLayout.LayoutParams adParams = 
            new RelativeLayout.LayoutParams(RelativeLayout.LayoutParams.WRAP_CONTENT, 
                    RelativeLayout.LayoutParams.WRAP_CONTENT);
        adParams.addRule(RelativeLayout.ALIGN_PARENT_BOTTOM);
        adParams.addRule(RelativeLayout.CENTER_HORIZONTAL);

    layout.addView(myView);
    layout.addView(adView, adParams);

    //Set main renderer             
    setContentView(layout);

关于Android AdMob 横幅添加到 Canvas 之上?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25445239/

相关文章:

android - 删除主文件夹中的 .android 文件夹是否安全?

java - 如何覆盖android中的操作栏后退按钮?

Android Studio : How to disable updates for just core platform version?

Android 图形 : Drawing same size circles

android - 尝试从图库中选取图像时出现 TransactionTooLargeException

api - Facebook API、iFrame 中的 Canvas 应用、Javascript API、IE8 中的损坏?

javascript - 使用 Canvas 和 ForEach 处理异步调用

java - 如何等待 AdMob 奖励视频正确加载

android - 使用一个 admob 帐户和两个 google play 帐户?

android - AdMob 崩溃 "requestFeature() must be called before adding content"