2012-01-20 36 views
7

Tôi đang cố hiển thị quảng cáo bằng Greystrip trong AndEngine.Hiển thị Quảng cáo Trong AndEngine

Tôi không thể tìm hiểu cách thực hiện việc này vì nó không sử dụng Bố cục để tăng lượt xem nhưng vẫn chưa được hiển thị.

tôi sử dụng BaseGameActivity để tạo ứng dụng cho mỗi cảnh tôi muốn hiển thị thêm vào.

Trong GreyStrip đây là cách họ nói với bạn tích hợp quảng cáo trong ứng dụng của bạn ..

Trước khi thêm các cuộc gọi trong ứng dụng của bạn để GSSDK, bạn cần phải kết hợp chặt chẽ SDK vào AndroidManifest.xml của bạn. Thêm vào phần này, thay thế bằng mã định danh gói duy nhất cho ứng dụng của bạn. Nhà cung cấp nội dung này quản lý lưu trữ nội dung quảng cáo cục bộ, trong khi Hiển thị quảng cáo quản lý hoạt động.

<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> 

Để khởi tạo Greystripe SDK, gọi phương thức khởi tạo tại khởi động. Điều này nên được thực hiện trong phương thức onCreate() của ứng dụng của bạn. Cuộc gọi này sẽ sinh ra một chuỗi nền để khởi tạo hoạt động của chúng tôi và sau đó trả lại quyền kiểm soát cho ứng dụng của bạn. Trong nền này, hoạt động của Greystripe sẽ tải xuống quảng cáo cũng như bất kỳ cập nhật SDK nào. Tham số: ctx: Ứng dụng của bạn Trường hợp bối cảnh appId: Sử dụng appId được cung cấp trong quá trình đăng ký ứng dụng. Cung cấp appId không hợp lệ sẽ khiến cho SDK hiển thị quảng cáo thông báo lỗi.

public static GSSDK initialize(Context ctx, String appId) 

Để sử dụng một biểu ngữ, đặt dòng sau vào tập tin main.xml của bạn:

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

Để tham chiếu giao diện biểu ngữ trong mã, sử dụng findViewById, như với bất kỳ yếu tố nào main.xml:

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

Để yêu cầu thêm gọi

myBanner.refresh(); 

Bây giờ vấn đề là kể từ khi tôi không có một bố cục xml tôi không thể tìm ra cách tôi thổi phồng bố trí cho giao diện quảng cáo?

Bất kỳ ai có ý tưởng nào?

CHỈNH SỬA:

Tôi thấy ai đó làm điều này như thế này trong hướng dẫn trực tuyến, nhưng làm cách nào tôi có thể làm điều này trong 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(); 
     } 
    }); 
+0

Loại bố cục nào bạn có? Ít nhất bạn phải có một số loại Linear/Relative Layouts để sắp xếp các thành phần của bạn trên màn hình. Nếu chỉ cần tạo LayoutParams lp ... và sau đó là mymainview.addView (myBanner, lp); và tiếp tục với nó. –

+0

Với GreyStripe bạn sử dụng BannerView. Như tôi có trong câu hỏi của tôi. Kiểm tra cập nhật của tôi .. Vấn đề là tôi không thể tìm ra cách để tích hợp này với AndEngine –

+0

bạn onCreate() trong AdView là gì và cách bạn đặt setContentView() trong đó? –

Trả lời

6

Tôi đang sử dụng AdMob nhưng sẽ tương tự.

Giống như @Sergey Benner được tham chiếu, bạn phải ghi đè onSetContentView trong hoạt động của mình, sau đó tạo RenderSurfaceView và chế độ xem quảng cáo theo cách thủ công.

Trước hết, hãy tạo FrameLayout để chứa chế độ xem của AndEngine và chế độ xem quảng cáo. Thêm chế độ xem của AndEngine và tạo chế độ xem quảng cáo của bạn, sau đó đặt bố cục khung làm chế độ xem nội dung.

@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); 
} 

Đặt phương thức này vào lớp BaseGameActivity của bạn.

+1

Jong Lưu ngày..AGAIN! (= Dude tuyệt vời của bạn. Bạn thực sự giúp tôi rất nhiều.Cảm ơn bạn đủ.Cũng trong frameLayout.addView (this.mAdView, bannerViewLayoutParams); nên là frameLayout.addView (this.bannerView, bannerViewLayoutParams); chính xác? –

+1

Yea, Tôi chỉ quên thay đổi nó (Đó là từ một phương pháp trong trò chơi của tôi, nhưng tôi đã sử dụng AdMob 'AdView'. Tôi sẽ sửa lỗi ngay bây giờ :)) – Jong

+0

Trò chơi của bạn có trên thị trường không? Tôi muốn thử nó. –

0

Có một cách dễ dàng hơn để tích hợp quảng cáo với trò chơi AndEngine. Kiểm tra bài đăng này trên blog của tôi http://myandroidworld.net/how-to-configure-admob-with-andengine/ Có một ví dụ về AdMob nhưng không quan trọng bạn sử dụng mạng quảng cáo nào.

+2

Liên kết chết ............. –

Các vấn đề liên quan