android 学习: SurfaceView

来源:互联网 发布:mysql update 走索引 编辑:程序博客网 时间:2024/06/05 17:09

1. SurfaceView

package com.example.test;import java.util.Random;import android.content.Context;  import android.graphics.Canvas;import android.view.SurfaceHolder;import android.view.SurfaceHolder.Callback;import android.view.SurfaceView;/** *  * @author Luv * */public class MySurfaceView extends SurfaceView implements Callback, Runnable {    private SurfaceHolder sHolder;    private Canvas canvas;    private int widthScreen, heightScreen;    private Thread thread;    private boolean flag;    public MySurfaceView(Context context) {        super(context);        sHolder = getHolder();        sHolder.addCallback(this);    }        public void draw() {        try {            canvas = sHolder.lockCanvas();            //draw something            Random r = new Random();            canvas.drawRGB(r.nextInt(256), r.nextInt(256), r.nextInt(256));        } catch (Exception e) {            e.printStackTrace();        } finally {            if (canvas != null) {                sHolder.unlockCanvasAndPost(canvas);            }        }    }        @Override    public void run() {         while (flag) {             long start = System.currentTimeMillis();             //do something...or draw()             draw();             long end = System.currentTimeMillis();             long sleep = 50 - end + start;             try {                if (sleep>0) {                     Thread.sleep(sleep);                 }            } catch (InterruptedException e) {                e.printStackTrace();            }         }    }    @Override    public void surfaceCreated(SurfaceHolder arg0) {        heightScreen = getHeight();        widthScreen = getWidth();        thread = new Thread(this);        thread.start();            flag = true;    }        @Override    public void surfaceChanged(SurfaceHolder arg0, int arg1, int arg2, int arg3) {            }            @Override    public void surfaceDestroyed(SurfaceHolder arg0) {        flag = false;    }}  




0 0
原创粉丝点击