【摘要】:SurfaceView是视图的继承类,这个视图里内嵌了一个专门用于绘制的Surface。我们可以控制这个Surface的格式和尺寸,SurfaceView控制这个Surface的绘制位置。SurfaceView提供了一个可见区域,只有在这个可见区域内的Surface部分内容才可见,可见区域外的部分不可见。SurfaceView变得可见时,Surface被创建;SurfaceView隐藏前,Surface被销毁,这样能节省资源。Surfaceview的核心在于提供了两个线程:UI线程和渲染线程。所有SurfaceView和SurfaceHolder.Callback的方法都应该在UI线程里调用,一般来说就是应用程序主线程。
SurfaceView是视图(View)的继承类,这个视图里内嵌了一个专门用于绘制的Surface。我们可以控制这个Surface的格式和尺寸,SurfaceView控制这个Surface的绘制位置。
Surface是纵深排序(Z-ordered)的,这表明它总在自己所在窗口的后面。SurfaceView提供了一个可见区域,只有在这个可见区域内的Surface部分内容才可见,可见区域外的部分不可见。可以通过SurfaceHolder接口访问Surface,getHolder()方法可以得到这个接口。
SurfaceView变得可见时,Surface被创建;SurfaceView隐藏前,Surface被销毁,这样能节省资源。如果要查看Surface被创建和销毁的时机,可以重载surfaceCreated(SurfaceHold-er)和SurfaceDestroyed(SurfaceHolder)。
Surfaceview的核心在于提供了两个线程:UI线程和渲染线程。这里应注意以下几点。(www.xing528.com)
(1)所有SurfaceView和SurfaceHolder.Callback的方法都应该在UI线程里调用,一般来说就是应用程序主线程。渲染线程所要访问的各种变量应该作同步处理。
(2)由于Surface可能被销毁,它只在SurfaceHolder.Callback.surfaceCreated()和Sur-faceHolder.Callback.surfaceDestroyed()之间有效,所以要确保渲染线程访问的是合法有效的Surface。
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。