安卓发展到今天,已经有移动广告开发商,给我们开发者提供了他们自己的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” 完成添加。
如图所示:
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" />
3.DomobAdView 类
API定义:一个用于调用横幅广告的类。
成员变量:其中包含 INLINE_SIZE_300X250 、INLINE_SIZE_320X50 、INLINE_SIZE_600X500 、INLINE_SIZE_600X94 、INLINE_SIZE_728X90 几个变量,其实这些都是横幅(Banner)广告的大小。
功能方法:
DomobAdView(android.content.Context context, java.lang.String publisherID, java.lang.String placementID,java.lang.String size)第一个参数需要传入一个Context类型变量,第二个是你在多盟申请的 出版者标识( PUBLISHERID),第三个是广告位ID,最好一个是你广告条幅的大小。
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());
(2)在 MainActivity类中修改代码,添加 DomobAdView 和 ID。
(3)创建游戏入口的VIEW,通过initializeForView实现。
如图:
(4)创建布局,同时将2个VIEW加入进去,一个游戏的VIEW 和 一个广告的VIEW。
如图:
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); } }