android 游戏框架SurfaceView

本文介绍如何使用Android中的SurfaceView进行游戏开发。通过自定义MySurfaceView类,实现SurfaceView的绘制和更新过程。文章详细解释了SurfaceHolder的作用及如何通过其实现SurfaceView的状态监听。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

                   android 游戏框架SurfaceView

1.  自定义一个类“MySurfaceView”,继承SurfaceView,还要实现了Callback接口:
     import android.view.SurfaceHolder;

     import android.view.SurfaceHolder.Callback;

    import android.view.SurfaceView;

* SurfaceHolder类作用:

 提供控制SurfaceView大小,格式等,主要用于监听SurfaceView状态。

*SurfaceView 作用:保存当前视图的像素数据,使用中不会直接与其打交道,是通过SurfaceHolder控制的。


注意:以下定义的gameDraw() ,使用了SurfaceHolder的 lockCanvas() 获得了SurfaceView的Canvas对象。

            Canvas canvas=sfh.lockCanvas); 通过canvas修改SurfaceView中数据。   

      

    public class MySurfaceView extends SurfaceView implements Callback{

          private SurfaceHolder sfh;

          private Paint paint;
    
    public MySurfaceView(Context context) {
        super(context);
        sfh=this.getHolder();
        sfh.addCallback(this);
        paint=new Paint();
        paint.setColor(Color.RED);
    }

    @Override
    public void surfaceChanged(SurfaceHolder holder, int format, int width,
            int height) {
        gameDraw();
    }
  @Override
    public void surfaceCreated(SurfaceHolder holder) {      
    }
 @Override
    public void surfaceDestroyed(SurfaceHolder holder) { 

    }

     //  自定义的绘图函数  

    private void gameDraw() {
        // TODO Auto-generated method stub
        Canvas canvas=sfh.lockCanvas();
        canvas.drawColor(Color.BLACK);
        canvas.drawText("xiabing", textX, textY, paint);
        sfh.unlockCanvasAndPost(canvas);
    }

}

对SurfacevView监听需要使用到SurfaceHolder的Callback接口。重写三个函数,监听Surfaceview不同状态。

1. 当SurfacevView被创建完成时响应函数:surfaceCreated()

2. 当SurfacevView状态发生改变时响应函数:surfaceChanged()

3. 当SurfaceView状态被摧毁时响应的函数:surfaceDestroyed


对SurfaceView监听采用:SurfaceHolder的 addCallback() 监听接口。


代码下载:http://download.youkuaiyun.com/detail/xiabing082/5965761

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值