懒人爱家务_添加广告

安卓发展到今天,已经有移动广告开发商,给我们开发者提供了他们自己的SDK,供我们使用,在游戏中嵌入SDK,同时就可以使用他们的广告了。学习libgdx至今,有许多朋友向我提出,希望我能讲解下在libgdx中如何使用广告,那么今天我们就来学习下,在libgdx中如何嵌入广告。



1.嵌入广告SDK

首先,我们使用多盟广告平台,在你建立的libgdx的android项目中的libs目录下,将Domob SDK的 JAR包(domob_android_sdk.jar)拷贝到libs目录下。步骤如下:

1) 在 “Package Explorer” 页签中右击你的工程并选择 “Properties”。

2) 在左侧面板中选择 “Java Build Path”。

3) 在主窗口中选择 “Libraries”页签。

4) 点击“Add JARs…”按钮。

5) 选择您拷贝到libs目录下的domob_android_sdk.jar。

6) 点击 “OK” 完成添加。

如图所示:

懒人爱家务_添加广告_第1张图片



2.修改AndroidManifest.xml文件

(1)添加Activity声明在AndroidManifest.xml文件中的</application>标签之前,还需要添加必要的Activity声明,添加如下代码:

   <pre name="code" class="html"> <activity android:name="cn.domob.android.ads.DomobActivity"
    android:theme="@android:style/Theme.Translucent"></activity>


(2)添加权限许可在AndroidManifest.xml文件中的<application>标签之前,请为SDK添加以下权限许可(如果App本身没有的话),添加代码如下:


    <uses-permission android:name="android.permission.INTERNET" />
    <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
    <uses-permission android:name="android.permission.READ_PHONE_STATE" />
    <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
    <uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
    <uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />

懒人爱家务_添加广告_第2张图片


3.DomobAdView 类

API定义:一个用于调用横幅广告的类。
成员变量:其中包含 INLINE_SIZE_300X250INLINE_SIZE_320X50INLINE_SIZE_600X500INLINE_SIZE_600X94INLINE_SIZE_728X90 几个变量,其实这些都是横幅(Banner)广告的大小。

功能方法:

DomobAdView(android.content.Context context, java.lang.String publisherID, java.lang.String placementID,java.lang.String size)
第一个参数需要传入一个Context类型变量,第二个是你在多盟申请的 出版者标识( PUBLISHERID),第三个是广告位ID,最好一个是你广告条幅的大小。

常用方法:


(1)requestAdForAggregationPlatform() 方法:在后台请求广告党不刷新当前广告VIEW。

(2) requestRefreshAd() 方法:立刻请求一个新的广告并刷新view。

(3) setAdEventListener( DomobAdEventListener eventListener) 方法:加入监听器,打印一些数据。

还有一些就是一些简单的设置方法,读者可以自行看下多盟的API都是很简单的,可以看懂,这里就叙述这个几个常用的方法。

4.要点讲解

这里主要简单的实现一个横幅广告即Banner广告的展示,不过首先我们要来进行一个简单的知识讲解,下面我们介绍下几个我们要用到的知识点。

(1) PUBLISHER_ID 开发者ID :这个是在多盟申请的,具体操作,大家可以去多盟下载SDK后,会有帮助文档教大家如何申请,这里土豆就不赘述了。例如:"56OJyM1ouMGoaSnvCK"。

(2)InlinePP_ID 广告位ID :个是在多盟申请的,具体操作,大家可以去多盟下载SDK后,会有帮助文档教大家如何申请,这里土豆就不赘述了。例如:"16TLwebvAchksY6iO_8oSb-i"。

(3)RelativeLayout:要通过layout文件来定位广告位,可以在想要加广告视图的位置预留ViewGroup来作为广告的容器。其实也就是我们建立一个RelativeLayout来实现布局,这里大家可以参考下Mars老师的视频,我会在后面附上的。

(4)initializeForView() 方法:这个类要和 initialize()方法一起说明,其实这2个方法有共同之处,他们都可以直接创建一个游戏入口,但是initializeForView()方法不完成 setContentView方法,而initialize方法默认是完成的,所以这个方法就给我们提供了一个加入其它VIEW的机会,同样的在结束的时候我么要自己setContentView(layout),这样才能完成游戏入口的建立。这里可能需要了解一些安卓的基础开发,大家可以参考Mars老师的教程来理解。

参数:第一个要传入一个 ApplicationListener listener,第二个要传入一个布尔类型的变量,其实是选择是否用OPENGL 2.0一般选择false。

PS: 通过查看系统包,我们可以发现initialize()方法 比 initializeForView()多出了如下代码,这个代码就是包含了setContentView的一个结束方法,该方法默认给我们setContentView。

代码如下:

    try {
    requestWindowFeature(Window.FEATURE_NO_TITLE);
    } catch (Exception ex) {
    log("AndroidApplication", "Content already displayed, cannot request FEATURE_NO_TITLE", ex);
    }
    getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN, WindowManager.LayoutParams.FLAG_FULLSCREEN);
    getWindow().clearFlags(WindowManager.LayoutParams.FLAG_FORCE_NOT_FULLSCREEN);
    setContentView(graphics.getView(), createLayoutParams());

5.实例演示

以为我们测试代码都是在核心代码项目中修改,但是由于这次我们要在安卓项目中添加广告,所以这样我们就需要在android项目中编写代码。

(1)修改android项目中的AndroidManifest.xml文件,如上面讲解的,加入权限和声明。

如图:

懒人爱家务_添加广告_第3张图片

(2)在 MainActivity类中修改代码,添加 DomobAdView 和 ID。

懒人爱家务_添加广告_第4张图片


(3)创建游戏入口的VIEW,通过initializeForView实现。

如图:

懒人爱家务_添加广告_第5张图片

(4)创建布局,同时将2个VIEW加入进去,一个游戏的VIEW 和 一个广告的VIEW。

如图:

懒人爱家务_添加广告_第6张图片


6.完整代码

    package com.potato;

    import android.os.Bundle;
    import android.view.View;
    import android.widget.RelativeLayout;
    import cn.domob.android.ads.DomobAdView;
    import com.badlogic.gdx.backends.android.AndroidApplication;
    import com.badlogic.gdx.backends.android.AndroidApplicationConfiguration;


    public class MainActivity extends AndroidApplication {

    public static final String PUBLISHER_ID = "56OJyM1ouMGoaSnvCK";
    public static final String InlinePPID = "16TLwebvAchksY6iO_8oSb-i";

    DomobAdView MyAdview320x50;

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

    AndroidApplicationConfiguration cfg = new AndroidApplicationConfiguration();
    cfg.useGL20 = false;

    View gameView = initializeForView(new MyGame(), false);

    RelativeLayout layout = new RelativeLayout(this);

    MyAdview320x50 = new DomobAdView(this, PUBLISHER_ID, InlinePPID,
    DomobAdView.INLINE_SIZE_320X50);

    layout.addView(gameView);
    layout.addView(MyAdview320x50);

    setContentView(layout);

    }
    }


你可能感兴趣的:(懒人爱家务_添加广告)