package com.qiaoguo.surfaceviewproject;
import android.content.Context;
import android.graphics.Canvas;
import android.util.AttributeSet;
import android.view.SurfaceHolder;
import android.view.SurfaceView;
/**
* Created by Administrator on 2018/3/20.
*/
public class SurfaceViewTemplate extends SurfaceView implements Runnable {
private Thread mThread;
private volatile boolean isRunning;
public SurfaceViewTemplate(Context context, AttributeSet attrs) {
super(context, attrs);
SurfaceHolder holder = getHolder();
holder.addCallback(new SurfaceHolder.Callback() {
@Override
public void surfaceCreated(SurfaceHolder surfaceHolder) {
mThread = new Thread(SurfaceViewTemplate.this);
mThread.start();
}
@Override
public void surfaceChanged(SurfaceHolder surfaceHolder, int i, int i1, int i2) {
}
@Override
public void surfaceDestroyed(SurfaceHolder surfaceHolder) {
isRunning=false;
}
});
}
@Override
public void run() {
while (isRunning) {
drawSelf();
}
}
private void drawSelf() {
Canvas canvas=null;
try {
getHolder().lockCanvas();
if (canvas!=null){
//绘制
}
} catch (Exception e) {
e.printStackTrace();
}finally {
if (canvas!=null){
getHolder().unlockCanvasAndPost(canvas);
}
}
}
}
SurfaceView模板
©著作权归作者所有,转载或内容合作请联系作者
- 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
- 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
- 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
推荐阅读更多精彩内容
- 上例中由于Stack类模板的声明中第二个参数是一个类型(typename Container),所以我们通过Sta...
- (2017-11-14-周二 00:30:16) SuperMemo 2000 only: Choose Ctrl...
- 这里有:1.函数模板的基本调用2.当函数模板和函数重载在一起的时候,先调用普通函数还是函数模板2.函数模板在c++...