(ZZ)如何在SurfaceView中添加广告

        如何在SurfaceView中添加广告??这个问题我之前在google和百度里找过,但是没有找到答案。我心里想,难道这个问题没有人碰过吗?我开始找之前我以为这个问题很快就能找到答案的。但是结果没有那么顺利。。。。

        首先我为什么会出现这样的问题呢?因为之前一直在开发Android应用,现在转成Android的游戏的开发(学习中)。在开发应用一般都是用xml进行布局的,但我第一个游戏开发过程时我没有用xml进行布局。可能是因为开始学游戏开发的时候基本上都是是看《Android2.0 游戏开发实战宝典》来开发,完全参考该书去写代码的。书中是直接用GameView来画页面,代码如下:

	protected void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
 
		//全屏
		requestWindowFeature(Window.FEATURE_NO_TITLE);
		getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN ,  
				WindowManager.LayoutParams.FLAG_FULLSCREEN);
 
		setContentView(new GameView(this));
	}

        像上面的代码这样来画页面(setContentView方法设置SurfaceView)的话,我真没不到怎么加广告,难道还要画一个广告出来?(呵呵。。) 平时用果合添加广告的时候都是在xml中添加Layout(id=adLayout)。直接设置了SurfaceView到contentView的话那么可以怎么样定义adLayout呢?

        最后通过在QQ群中问了下才发现自己方向是完全错误的(可能也是受到《Android2.0 游戏开发实战宝典》书的影响,我觉得该书写到非常好,起码我看完了后了解很多开发游戏的方法与技巧)。其实应该是在xml布局中直接调用SurfaceView。真的不开发游戏也不知道原来可以这样。。因为开发Android应用一般很少使用SurfaceView,起码我自己开发了两三个应用也没有使用过SurfaceView。。真的说来惭愧。。后来就知道了如何用xml布局添加SurfaceView,代码如下:

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
android:orientation="vertical" 
android:layout_width="fill_parent"	
android:layout_height="fill_parent">
 
<rbase.app.hitshrew.view.GameView android:id="@+id/shrew_gameview"
android:layout_width="fill_parent" 
android:layout_height="fill_parent" />
 
<LinearLayout android:id="@+id/adLayout" 
android:layout_alignParentTop="true" 
android:layout_alignParentRight="true" 
android:layout_width="320px" 
android:layout_height="wrap_content" />	 
</LinearLayout>

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
SurfaceView播放视频的实现步骤如下: 1. 创建SurfaceView对象和MediaPlayer对象。 ```java SurfaceView surfaceView = findViewById(R.id.surface_view); MediaPlayer mediaPlayer = new MediaPlayer(); ``` 2. 设置SurfaceHolder.Callback回调,监听SurfaceView的状态变化。当SurfaceView的状态变为就绪状态时,可以开始播放视频。 ```java surfaceView.getHolder().addCallback(new SurfaceHolder.Callback() { @Override public void surfaceCreated(SurfaceHolder holder) { // SurfaceView已经创建完成,可以进行视频播放 mediaPlayer.setDisplay(holder); mediaPlayer.setDataSource("视频文件路径"); mediaPlayer.prepareAsync(); } @Override public void surfaceChanged(SurfaceHolder holder, int format, int width, int height) { // SurfaceView发生变化,可以在这里进行一些UI操作 } @Override public void surfaceDestroyed(SurfaceHolder holder) { // SurfaceView被销毁,可以在这里释放资源 mediaPlayer.release(); } }); ``` 3. 设置MediaPlayer的监听器,监听视频播放的状态变化。 ```java mediaPlayer.setOnPreparedListener(new MediaPlayer.OnPreparedListener() { @Override public void onPrepared(MediaPlayer mp) { // 视频准备完成,可以开始播放 mediaPlayer.start(); } }); mediaPlayer.setOnCompletionListener(new MediaPlayer.OnCompletionListener() { @Override public void onCompletion(MediaPlayer mp) { // 视频播放完成,可以进行一些UI操作 } }); mediaPlayer.setOnErrorListener(new MediaPlayer.OnErrorListener() { @Override public boolean onError(MediaPlayer mp, int what, int extra) { // 视频播放出错,可以进行一些错误处理 return false; } }); ``` 4. 在Activity的生命周期方法,控制MediaPlayer的状态变化。 ```java @Override protected void onResume() { super.onResume(); mediaPlayer.start(); } @Override protected void onPause() { super.onPause(); mediaPlayer.pause(); } @Override protected void onDestroy() { super.onDestroy(); mediaPlayer.release(); } ``` 以上就是在SurfaceView播放视频的基本实现方法,可根据具体需求进行调整。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值