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



我正在尝试在我的应用中实现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);
}

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

有人可以帮助我朝着正确的方向前进吗?

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

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

请查看文档,详细了解如何设置 AdView。

ads函数中,您实际上并没有使用您创建的 LinearLayout - 您需要将其放入另一个布局或直接放入您的活动中,使用 setContentView

最新更新