将admob添加到扩展View类中的画布

时间:2012-04-26 12:17:45

标签: android view admob android-canvas extends

我正在尝试在我的应用中实现admob,但我无法让它工作。

我有一个A类,它是主类,它扩展了活动。 我有一个B类,它是应用程序启动时调用的类。我在A类中有以下代码来存档:

B b = new B(this);
setContentView(B);

在B类中,我有一个带有测试和位图的画布。我想用admob在画布上放一个广告,但我无法存档。 B级:

private AdView adView;
int[] degree = { 90, 180, 270, 360 };// random graden eindposities pijl
// int width, height;
Random rand = new Random();
Typeface font;
Matrix matrix = new Matrix();// degree,x,yaxis
Region region;// region die klikbaar is om het pijl te bewegen
AlertDialog alertDialog;
LinearLayout layout;

public YesNo(Context context) {
    super(context);
    // TODO Auto-generated constructor stub
}

@Override
public boolean onTouchEvent(MotionEvent event) {
   //do something
}

@Override
protected void onDraw(Canvas canvas) {
    //Do something
    invalidate();
}

我尝试使用此代码(以及其他)实现admob:

public void ads() {
    adView = new AdView((Activity) getContext(), AdSize.BANNER,
             "xxxxxxxxxxx");

    LinearLayout.LayoutParams params;
    params = new LinearLayout.LayoutParams(
             LinearLayout.LayoutParams.FILL_PARENT,
             LinearLayout.LayoutParams.WRAP_CONTENT);

    // Create a linear layout
    LinearLayout layout = new LinearLayout((Activity) getContext());
    layout.setOrientation(LinearLayout.VERTICAL);
    layout.setPadding(6, 6, 6, 6);
    layout.addView(adView, params);
}

我搜索了几个小时的解决方案,但我找不到任何解决方案。

有人可以帮助我朝正确的方向发展吗?

2 个答案:

答案 0 :(得分:0)

ads函数中,您实际上并未使用您创建的LinearLayout - 您需要使用setContentView

将其放入另一个布局或直接放入您的活动中

答案 1 :(得分:0)

首先,您的AdView需要成为内容视图的一部分。您在LinearLayout函数中创建的ads()。其次,您需要创建AdRequest并使用该请求加载广告:

AdRequest request = new AdRequest();
request.addTestDevice(AdRequest.TEST_EMULATOR); // get test ads on emulator.
adView.loadAd(request);

查看documentation,了解有关如何设置AdView的详情。