surface surfaceview surfaceholder联系与区别

来源:互联网 发布:网络社交软件怎么做 编辑:程序博客网 时间:2024/06/06 07:19

1 Surface,原始图像缓冲区的句柄,通过它可以获取图像缓冲区的像素数据,其内部定义了一个画布对象Canvas,该类继承自Precelable,可以通过外部的Precel容器写入读出数据

2 SurfaceView 提供了一个专门用于绘制的surface,可以通过其控制surface显示的格式,尺寸和在屏幕上的正确位置

 一般不直接操作surface,而是通过surfaceholder对象操作surface,当surfaceview对象窗口可见时,surface对象被创建,当surfaceview对象窗口隐藏时surface对象被销毁

SurfaceView与Surface的联系就是,Surface是管理显示内容的数据(implementsParcelable),包括存储于数据的交换。而SurfaceView就是把这些数据显示出来到屏幕上面

3 SurfaceHolder是控制surface的一个抽象接口,你可以通过SurfaceHolder来控制surface的尺寸和格式,或者修改surface的像素,监视surface的变化等等,SurfaceHolder是SurfaceView的典型接口。

        与直接控制SurfaceView来修改surface不同,使用SurfaceHolder来修改surface时,需要注意lockCanvas()Callback.surfaceCreated().这两个方法。

原创粉丝点击