如何将AdMob绘制到画布上?

时间:2012-01-01 20:37:44

标签: android canvas admob

我遇到问题,让AdMob显示在我的画布上。

我的代码如下所示。

layout = new LinearLayout(getContext());
    adView = new AdView((Activity) getContext(), AdSize.BANNER, "############");
    layout.setLayoutParams(new LayoutParams(LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT));
    adView.setVisibility(View.VISIBLE);
    layout.addView(adView);
    TextView textView = new TextView(context); 
    textView.setVisibility(View.VISIBLE);
    textView.setText("Hello world");
    layout.addView(textView);
    AdRequest adRequest = new AdRequest();
    adRequest.addTestDevice(AdRequest.TEST_EMULATOR);
    adRequest.addTestDevice("TEST_DEVICE_ID");
    adView.loadAd(adRequest);

在我的onDraw方法中,我有。

 canvas.drawColor(Color.GRAY);  
 layout.measure(getWidth(), getHeight());
 layout.layout(0, 0, getWidth(), getHeight());
            layout.draw(canvas);

“Hello World”显示但不显示广告。

2 个答案:

答案 0 :(得分:0)

我猜测“你好世界”是为了测试?

您是否尝试过调用adView.setLayoutParams(new LayoutParams(LayoutParams.MATCH_PARENT, LayoutParams.MATCH_PARENT));

当你在一个视图组上调用addView时,默认情况下,子进程会继承父进程的layoutparams,因为在你的情况下,父layoutparams是wrap_content,那么它可能会将adview缩小为不可见。

另外,你不应该在你的onDraw中调用layout.measure,你应该在onMeasure方法中这样做。

答案 1 :(得分:0)

如果你还没有解决这个问题:摆脱Hello World TextView或在

之前声明它
adView.setVisibility(View.VISIBLE);    
layout.addView(adView);