SurfaceView用法
来源:互联网 发布:mac如何登陆远程桌面 编辑:程序博客网 时间:2024/05/17 04:42
快速学会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);
}
}
- surfaceview用法
- SurfaceView用法
- SurfaceView简单用法一
- android中SurfaceView用法
- SurfaceView 典型用法
- SurfaceView简单用法
- SurfaceView 基础用法
- SurfaceView基础用法
- SurfaceView 基础用法
- surfaceView基本用法
- SurfaceView 基础用法
- Android SurfaceView用法
- SurfaceView 基础用法
- 快速学会SurfaceView用法
- SurfaceView,SurfaceHolder,SurfaceHolder.CallBack用法!
- android的surfaceview的用法
- Android SurfaceView的基本用法
- SurfaceView的用法及注意事项
- poj1860--Currency Exchange
- 常用总线协议---SPI
- ICE 中间件 例子程序使用
- 大数加法,可调用
- iis 7 下 url重写后,原本存在的html不能访问了,未能执行 URL
- SurfaceView用法
- ORACLE SQL性能优化之三
- java详解Spring的配置文件
- (个人理解+转载)ANSI/ASCII/UTF8/UNICODE/GB2312/UCS-2/UTF16-文本的编码格式
- C++ 操作MySql数据库实例讲解
- PHP的验证码实现
- 在Windows Server 2008服务器上开启Ping或者禁ping
- shell脚本中的函数
- spring加载顺序