android – 在AndEngine中显示广告

前端之家收集整理的这篇文章主要介绍了android – 在AndEngine中显示广告前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我试图在AndEngine中使用Greystrip显示广告.

我无法弄清楚这是如何完成的,因为它没有使用布局来充气视图,但是精灵.

我使用BaseGameActivity为我想要显示的每个场景创建我的应用程序.

在GreyStrip中,这是他们告诉您在应用程序中集成广告的方式.

Before adding calls in your application to GSSDK,you need to
incorporate the SDK into your AndroidManifest.xml. Add the following
in the section,replacing
with a package identifier that is unique to your application. This
Content Provider manages local storage of ad content,while the
Activity manages ad display.

<provider android:name="com.greystripe.android.sdk.AdContentProvider"
    android:authorities="<YOUR_APPLICATION_PACKAGE>.AdContentProvider"
android:multiprocess="true"
android:exported="false" />
<activity android:name="com.greystripe.android.sdk.AdView"
android:configChanges="keyboard|keyboardHidden|orientation" >
<intent-filter>
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>

To initialize the Greystripe SDK,call the initialize method at
startup. This should be done within your application’s onCreate()
method. This call will spawn a background thread to initialize our
activity,and then return control to your app. In this background,the
Greystripe activity will download ads as well as any SDK updates.
Parameters: ctx: Your application Context instance appId: Use the
appId provided during app registration. Providing an invalid appId
will cause the SDK to display error notification ads.

public static GSSDK initialize(Context ctx,String appId)

To use a banner,place the following in your main.xml file:

<view class="com.greystripe.android.sdk.BannerView"
android:id="@+id/gsBanner"
android:layout_width="320dp"
android:layout_height="48dp"/>

To reference the banner view in code,use findViewById,as with any
main.xml element:

BannerView myBanner = (BannerView) findViewById(R.id.gsBanner);

要求添加电话

myBanner.refresh();

现在的问题是因为我没有xml布局我无法弄清楚我如何为广告视图的布局充气?

有人有主意吗?

编辑:

我见过有人在网上教程中这样做,但我怎样才能在andengine中充气呢?

try {
    String applicationId = Utils.scrapeIgnoreCase(externalParams,"<param name=\"id\">","</param>");           
    GSSDK.initialize(context,applicationId);

    BannerView myBanner = new BannerView(context);          
    myBanner.setLayoutParams(view.getLayoutParams());
    myBanner.addListener(new GreyStripeBannerListener());           
    view.addView(myBanner);
    myBanner.refresh();
    myBanner.setOnClickListener(new  View.OnClickListener() {
        @Override
        public void onClick(View v) {
            Click();
        }
    });

解决方法

我正在使用AdMob,但它应该是类似的.

与@Sergey Benner引用一样,您必须在活动中覆盖onSetContentView,然后手动创建RenderSurfaceView和广告视图.

首先,创建一个FrameLayout以包含AndEngine的视图和广告视图.
添加AndEngine的视图并创建广告视图,然后将框架布局设置为内容视图.

@Override
protected void onSetContentView() {
    //Creating the parent frame layout:
    final FrameLayout frameLayout = new FrameLayout(this);
    //Creating its layout params,making it fill the screen.
    final FrameLayout.LayoutParams frameLayoutLayoutParams =
            new FrameLayout.LayoutParams(FrameLayout.LayoutParams.FILL_PARENT,FrameLayout.LayoutParams.FILL_PARENT);

    //Creating the banner view.
    BannerView bannerView = new BannerView(this);

    //....
    //Do any initiallizations on the banner view here.
    //....

    //Creating the banner layout params. With this params,the ad will be placed in the top of the screen,middle horizontally.
    final FrameLayout.LayoutParams bannerViewLayoutParams =
            new FrameLayout.LayoutParams(FrameLayout.LayoutParams.WRAP_CONTENT,FrameLayout.LayoutParams.WRAP_CONTENT,Gravity.TOP | Gravity.CENTER_HORIZONTAL);

    //Creating AndEngine's view.
    this.mRenderSurfaceView = new RenderSurfaceView(this);
    mRenderSurfaceView.setRenderer(mEngine,this);

    //createSurfaceViewLayoutParams is an AndEngine method for creating the params for its view.
    final android.widget.FrameLayout.LayoutParams surfaceViewLayoutParams =
            new FrameLayout.LayoutParams(super.createSurfaceViewLayoutParams());

    //Adding the views to the frame layout.
    frameLayout.addView(this.mRenderSurfaceView,surfaceViewLayoutParams);
    frameLayout.addView(bannerView,bannerViewLayoutParams);

    //Setting content view
    this.setContentView(frameLayout,frameLayoutLayoutParams);
}

将此方法放在BaseGameActivity类中.

原文链接:https://www.f2er.com/android/315436.html

猜你在找的Android相关文章