开发学院手机开发Android 开发 Android中使用SurfaceView的方法 阅读

Android中使用SurfaceView的方法

 2010-08-24 05:44:00 来源:WEB开发网   
核心提示:Android中使用SurfaceView的方法SurfaceView在游戏开发中有着举足轻重的地位,它对于画面的控制有着更大的自由度(不像View要用handler来更新,Android中使用SurfaceView的方法,关于View的),但这方面的参考资料并不是太多,其他的可简则简,程序效果:用线程画一个蓝色的长方

Android中使用SurfaceView的方法

SurfaceView在游戏开发中有着举足轻重的地位,它对于画面的控制有着更大的自由度

(不像View要用handler来更新,关于View的),但这方面的参考资料并不是太多,能找到的例子都有点喧宾夺主的感觉,

不能把使用的流程清晰展示出来,下面是个简单的示例,力求把流程清楚展示,其他的可简则简。

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

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);//解锁画布,提交画好的图像

}

}

}

}

Tags:Android 使用 SurfaceView

编辑录入:coldstar [复制链接] [打 印]
[]
  • 好
  • 好的评价 如果觉得好,就请您
      0%(0)
  • 差
  • 差的评价 如果觉得差,就请您
      0%(0)
赞助商链接