SurfaceView简单用法
2014-07-18 13:52
281 查看
快速学会SurfaceView用法:
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是视图(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);
}
}
运行结果如下:
相关文章推荐
- Android学习历程15-SurfaceView的简单用法(实例:幸运抽奖以及控制中奖物品)
- SurfaceView简单用法一
- Android中SurfaceView用法简单实例
- 学习笔记--android中surfaceview 简单用法实例:画板。
- SurfaceView用法
- Android学习笔记之 ViewFlipper UI的简单用法
- 用SurfaceView制作简单的android游戏 : 重力小球(3)--------制作障碍物以及使其旋转
- 用SurfaceView制作简单的android游戏 : 重力小球(完)--------添加其他类型的障碍物以及胜利画面
- UITableView和UITableViewCell的一些简单用法
- android surfaceView 的简单使用 画图,拖动效果
- SurfaceView、SurfaceHolder和SurfaceHolder.CallBack的简单介绍
- SurfaceView与Canvas的结合实现简单的图形绘制与动画效果
- android中SurfaceView用法
- SurfaceView的简单使用
- 简单用法WebView
- SurfaceView简单例子
- UITableView和UITableViewCell的一些简单用法
- surfaceview用法
- SurfaceView 简单 实例
- Android中SurfaceView用法示例