码迷,mamicode.com
首页 > 其他好文 > 详细

SurfaceView

时间:2015-01-19 15:59:06      阅读:124      评论:0      收藏:0      [点我收藏+]

标签:动态   用户   

    surface是SurfaceView的一个可见区域,它对应了一个内存区域,由于内存区域的对象都是有生命周期的,可以动态申请创建和销毁,当然也可能是更新。于是就有了作用于这个内存区的操作,即surcaceCreated/Changed/Destroyed.

    getHolder().addCallback(this);方法是获取surface的holder来注册callback也就是注册上面3个函数。

    一般,我们会在surfaceCreated函数中创建另外一个线程。所以这里有2个线程,UI线程和渲染线程。画图线程是由UI线程调用surfaceCreated时创建的,在surfaceDestroyed调用时放回线程池。在此期间,画图线程负责图形的绘制。

    在该模式下,UI线程负责和用户交互,画图线程负责绘制图形。我们知道,线程共享内存数据,所以surface是对于两个线程共享的。所以为了避免画图的时候UI线程也对surface进行操作的话,就在画图前对canvas加锁。

SurfaceView

标签:动态   用户   

原文地址:http://6169621.blog.51cto.com/6159621/1605674

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!