安卓:admob的实施对surfaceview [英] Android: Implement admob on surfaceview
本文介绍了安卓: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屋!
查看全文