Android教程網
  1. 首頁
  2. Android 技術
  3. Android 手機
  4. Android 系統教程
  5. Android 游戲
 Android教程網 >> Android技術 >> Android開發 >> 初級開發 >> Android中使用SurfaceView的方法

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);//解鎖畫布,提交畫好的圖像

}

}

}

}

  1. 上一頁:
  2. 下一頁:
熱門文章
閱讀排行版
Copyright © Android教程網 All Rights Reserved