安卓:admob的实施对surfaceview [英] Android: Implement admob on surfaceview

查看:147
本文介绍了安卓:admob的实施对surfaceview的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我有一个小游戏,它使用SurfaceView形式的活动。下面是code片断。我很困惑如何实现的AdMob上surfaceview。请建议。

 公共类DroidzActivity延伸活动{

    私有静态最后字符串变量= DroidzActivity.class.getSimpleName();

    @覆盖
    公共无效的onCreate(包savedInstanceState){
        super.onCreate(savedInstanceState);
        //请求把标题关
        requestWindowFeature(Window.FEATURE_NO_TITLE);
        //使其成为全屏幕
        getWindow()setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN,WindowManager.LayoutParams.FLAG_FULLSCREEN)。
        //设置我们MainGamePanel作为视图
        的setContentView(新MainGamePanel(本));
        Log.d(TAG,视图中添加);
    }
}

公共类MainGamePanel延伸SurfaceView工具
        SurfaceHolder.Callback {
}
 

答案

  

更新了code如下

 公共类DroidzActivity延伸活动{
    / **第一次创建活动时调用。 * /

    私有静态最后字符串变量= DroidzActivity.class.getSimpleName();
    私有静态最后弦乐MY_AD_UNIT_ID =XYZ;
    私人AD浏览报AD浏览报;

    @覆盖
    公共无效的onCreate(包savedInstanceState){
        super.onCreate(savedInstanceState);
        //请求把标题关
        requestWindowFeature(Window.FEATURE_NO_TITLE);
        //使其成为全屏幕
        getWindow()setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN,WindowManager.LayoutParams.FLAG_FULLSCREEN)。
        //设置我们MainGamePanel作为视图
        //的setContentView(新MainGamePanel(本));

        AD浏览报=新的AD浏览报(这一点,AdSize.SMART_BANNER,MY_AD_UNIT_ID);
        RelativeLayout.LayoutParams LP =新RelativeLayout.LayoutParams(
                RelativeLayout.LayoutParams.WRAP_CONTENT,
                RelativeLayout.LayoutParams.WRAP_CONTENT);
        lp.addRule(RelativeLayout.ALIGN_PARENT_BOTTOM);

        adView.setLayoutParams(LP);

        RelativeLayout的布局=新RelativeLayout的(这一点);
        layout.addView(新MainGamePanel(本));
        layout.addView(AD浏览报);
        adView.loadAd(新AdRequest());
        的setContentView(布局);

        Log.d(TAG,视图中添加);
    }

    @覆盖
    保护无效的onDestroy(){
        Log.d(TAG,销毁......);
        如果(AD浏览报!= NULL){
              adView.destroy();
            }
        super.onDestroy();
    }
 

解决方案

有DroidzActivity根视图是一个LinearLayout中containging的AD浏览报和MainGamePanel。

I have an activity in form of a small game which uses SurfaceView. Below are the code snippets.. I am confused how to implement admob on surfaceview. Please suggest.

public class DroidzActivity extends Activity {

    private static final String TAG = DroidzActivity.class.getSimpleName();

    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        // requesting to turn the title OFF
        requestWindowFeature(Window.FEATURE_NO_TITLE);
        // making it full screen
        getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN, WindowManager.LayoutParams.FLAG_FULLSCREEN);
        // set our MainGamePanel as the View
        setContentView(new MainGamePanel(this));
        Log.d(TAG, "View added");
    }
}

public class MainGamePanel extends SurfaceView implements
        SurfaceHolder.Callback {
}

Answer

Updated the code as below

public class DroidzActivity extends Activity {
    /** Called when the activity is first created. */

    private static final String TAG = DroidzActivity.class.getSimpleName();
    private static final String MY_AD_UNIT_ID = "XYZ";
    private AdView adView;  

    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        // requesting to turn the title OFF
        requestWindowFeature(Window.FEATURE_NO_TITLE);
        // making it full screen
        getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN, WindowManager.LayoutParams.FLAG_FULLSCREEN);
        // set our MainGamePanel as the View
        //setContentView(new MainGamePanel(this));

        adView = new AdView(this, AdSize.SMART_BANNER, MY_AD_UNIT_ID);
        RelativeLayout.LayoutParams lp = new RelativeLayout.LayoutParams(
                RelativeLayout.LayoutParams.WRAP_CONTENT,
                RelativeLayout.LayoutParams.WRAP_CONTENT);
        lp.addRule(RelativeLayout.ALIGN_PARENT_BOTTOM);

        adView.setLayoutParams(lp);

        RelativeLayout layout = new RelativeLayout(this);
        layout.addView(new MainGamePanel(this));
        layout.addView(adView);
        adView.loadAd(new AdRequest());
        setContentView(layout);

        Log.d(TAG, "View added");
    }

    @Override
    protected void onDestroy() {
        Log.d(TAG, "Destroying...");
        if (adView != null) {
              adView.destroy();
            }       
        super.onDestroy();
    }

解决方案

Have the root view for DroidzActivity be a LinearLayout containging an AdView and MainGamePanel.

这篇关于安卓:admob的实施对surfaceview的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆