首页 > 代码库 > SurfaceView
SurfaceView
surface是SurfaceView的一个可见区域,它对应了一个内存区域,由于内存区域的对象都是有生命周期的,可以动态申请创建和销毁,当然也可能是更新。于是就有了作用于这个内存区的操作,即surcaceCreated/Changed/Destroyed.
getHolder().addCallback(this);方法是获取surface的holder来注册callback也就是注册上面3个函数。
一般,我们会在surfaceCreated函数中创建另外一个线程。所以这里有2个线程,UI线程和渲染线程。画图线程是由UI线程调用surfaceCreated时创建的,在surfaceDestroyed调用时放回线程池。在此期间,画图线程负责图形的绘制。
在该模式下,UI线程负责和用户交互,画图线程负责绘制图形。我们知道,线程共享内存数据,所以surface是对于两个线程共享的。所以为了避免画图的时候UI线程也对surface进行操作的话,就在画图前对canvas加锁。
SurfaceView
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。