SurfaceView简单用法
来源:互联网 发布:淘宝app首页怎么实现 编辑:程序博客网 时间:2024/06/06 00:37
SurfaceView是视图(View)的继承类,这个视图里内嵌了一个专门用于绘制的Surface。你可以控制这个Surface的格式和尺寸。Surfaceview控制这个Surface的绘制位置。
第一步:
继承SurfaceView并实现SurfaceHolder.Callback接口
第二步: SurfaceView.getHolder()获得SurfaceHolder对象
第三步:SurfaceHolder.addCallback(callback)添加回调函数
第四步:SurfaceHolder.lockCanvas()获得Canvas对象并锁定画布
第五步:Canvas绘画
第六步:SurfaceHolder.unlockCanvasAndPost(Canvas canvas)结束锁定画图,并提交改变,将图形显示。
首先测试代码:
public class MySurfaceViewTestActivity extends Activity {
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(new MySurfaceView(this));
}
}
然后创建MySurfaceView类
public class MySurfaceView extends SurfaceView implements SurfaceHolder.Callback{
private Canvas canvas;
SurfaceHolder myholder;
public MySurfaceView(Context context) {
super(context);
System.out.println("构造方法");
//获取SurfaceHolder对象
myholder=getHolder();
//添加回调函数,绑定回调方法
myholder.addCallback(this);
}
@Override
public void surfaceChanged(SurfaceHolder holder, int format, int width,
int height) {
System.out.println("surfaceChanged方法");
}
@Override
public void surfaceCreated(SurfaceHolder holder) {
System.out.println("surfaceCreated方法");
//锁定画布
canvas=myholder.lockCanvas();
//设置画笔
Paint paint=new Paint();
paint.setColor(Color.RED);
//绘制图形
canvas.drawLine(10, 20, 40, 40, paint);
canvas.drawCircle(50, 50, 6, paint);
myholder.unlockCanvasAndPost(canvas);
Rect rect=new Rect(70, 70, 200, 200);
Canvas mycanvas=myholder.lockCanvas(rect);
paint.setColor(Color.GREEN);
//绘制图形
mycanvas.drawCircle(75, 75, 5, paint);
myholder.unlockCanvasAndPost(mycanvas);
}
@Override
public void surfaceDestroyed(SurfaceHolder holder) {
System.out.println("surfaceDestroyed方法");
//销毁时激发,一般在这里将画图的线程停止、释放。
myholder.unlockCanvasAndPost(canvas);
}
}
运行结果如下:
- SurfaceView简单用法一
- SurfaceView简单用法
- surfaceview用法
- SurfaceView用法
- 学习笔记--android中surfaceview 简单用法实例:画板。
- android中SurfaceView用法
- SurfaceView 典型用法
- SurfaceView 基础用法
- SurfaceView基础用法
- SurfaceView 基础用法
- surfaceView基本用法
- SurfaceView 基础用法
- Android SurfaceView用法
- SurfaceView 基础用法
- 快速学会SurfaceView用法
- SurfaceView的简单使用
- surfaceview简单应用
- SurfaceView 简单 实例
- 百度员工离职总结:如何做个好员工?(都是大实话,很值得一读)
- jstl
- Android网络(4):HttpClient必经之路----使用线程安全的单例模式HttpClient,及HttpClient和Application
- 王爽-《汇编语言2》学习笔记2
- POI导出EXCEL经典实现
- SurfaceView简单用法
- 简单五步创建一个WCF Rest Service
- AsyncTask实现异步处理任务
- 新手如何选股票
- 程序员父亲的遗产——编程十诫
- Receive packet steering patch详解
- ehcache配置参数说明
- 两小时狂赚1000万!这一切怎么“成功”完成?
- 输入一个单向链表,输出该链表中倒数第 k 个结点。链表的倒数第0 个结点为链表的尾指针。