展会信息港展会大全

SurfaceView提供了一个嵌入到视图层次结构内部的绘图表面
来源:互联网   发布日期:2015-10-13 07:38:29   浏览:2548次  

导读:SurfaceView提供了一个嵌入到视图层次结构内部的绘图表面,你可以控制这个表面的格式和它的大� ?urfaceView把这个表面放在屏幕的正确位置。这个表面在Z轴上是按照顺序放置的,位于持有它的窗口的下面。Surface......

SurfaceView提供了一个嵌入到视图层次结构内部的绘图表面,你可以控制这个表面的格式和它的大校SurfaceView把这个表面放在屏幕的正确位置。

这个表面在Z轴上是按照顺序放置的,位于持有它的窗口的下面。SurfaceView在它的窗口上打了一个洞,来显示绘图平面。View层次结构会 正确的处理SurfaceView与位于它上面显示的兄弟节点的合成。这可以用于在绘图表面放置覆盖物,例如按钮,但是需要注意一点,由于每次绘图表面的 改变,要重新进行alpha混合运算,这样会影响显示效果。

通过SurfaceHolder接口访问底层的绘图平面,可以通过SurfaceView实例的getHolder()方法获得。

当SurfaceView的窗口可见时,绘图表面将被创建。你应该实现surfaceCreated(SurfaceHolder)和surfaceDestroyed(SurfaceHolder)方法,这些方法会在绘图表面被创建和销毁时被调用。

这个类的目的之一是提供一个绘图表面,在它上面,第二个线程可以进行渲染。如果你采用这种方式进行渲染,你需要注意一些线程相关的问题:

1. 所有的SurfaceView和SurfaceHolder.Callback方法会被来自于运行SurfaceView的窗口的线程调用(通常都是应用的主线程),所以要正确的同步与绘制线程触及的任何状态;

2. 必须确保绘制线程只在绘图表面可用的前提下在它上面进行操作(在SurfaceHolder.CallBack.surfaceCreated()和SurfaceHolder.CallBack.surfaceDestroyed()之间)

赞助本站

人工智能实验室

相关热词: SurfaceView

AiLab云推荐
展开

热门栏目HotCates

Copyright © 2010-2024 AiLab Team. 人工智能实验室 版权所有    关于我们 | 联系我们 | 广告服务 | 公司动态 | 免责声明 | 隐私条款 | 工作机会 | 展会港