`
anson_xu
  • 浏览: 502248 次
  • 性别: Icon_minigender_1
  • 来自: 惠州
社区版块
存档分类

Android中SurfaceView的使用示例

阅读更多
SurfaceView在游戏开发中有着举足轻重的地位,它对于画面的控制有着更大的自由度(不像View要用handler来更新,关于View的),但这方面的参考资料并不是太多,能找到的例子都有点喧宾夺主的感觉,不能把使用的流程清晰展示出来,下面是个简单的示例,力求把流程清楚展示,其他的可简则简。



程序效果:用线程画一个蓝色的长方形。

Java代码
package com.ray.test;  
/* 
* SurfaceView的示例程序 
* 演示其流程 
*/ 
import android.app.Activity;  
import android.content.Context;  
import android.graphics.Canvas;  
import android.graphics.Color;  
import android.graphics.Paint;  
import android.graphics.RectF;  
import android.os.Bundle;  
import android.view.SurfaceHolder;  
import android.view.SurfaceView;  
 
public class Test extends Activity {  
    public void onCreate(Bundle savedInstanceState) {  
        super.onCreate(savedInstanceState);  
        setContentView(new MyView(this));  
    }  
      
    //内部类  
    class MyView extends SurfaceView implements SurfaceHolder.Callback{  
 
        SurfaceHolder holder;  
        public MyView(Context context) {  
            super(context);  
            holder = this.getHolder();//获取holder  
            holder.addCallback(this);  
            //setFocusable(true);  
              
        }  
 
        @Override 
        public void surfaceChanged(SurfaceHolder holder, int format, int width,  
                int height) {  
              
        }  
 
        @Override 
        public void surfaceCreated(SurfaceHolder holder) {  
            new Thread(new MyThread()).start();  
        }  
 
        @Override 
        public void surfaceDestroyed(SurfaceHolder holder) {  
              
        }  
          
        //内部类的内部类  
        class MyThread implements Runnable{  
 
            @Override 
            public void run() {  
                Canvas canvas = holder.lockCanvas(null);//获取画布  
                Paint mPaint = new Paint();  
                mPaint.setColor(Color.BLUE);  
                  
                canvas.drawRect(new RectF(40,60,80,80), mPaint);  
                holder.unlockCanvasAndPost(canvas);//解锁画布,提交画好的图像  
                  
            }  
              
        }  
          
    }  

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics