SurfaceHolder..docVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
SurfaceHolder.

SurfaceHolder 版本:Android 2.2 r1 结构 继承关系 public interface SurfaceHolder android.view.SurfaceHolder 概述 抽象接口持有人显示表面。允许您控制面的大小和格式,编辑在suface的橡树,并监测到变化。此接口通常可通过SurfaceView类来实现。 当一个线程使用不同于正在运行的线程的SurfaceView的接口时,你应该仔细阅读lockCanvas()和Callback.surfaceCreated()这两个抽象函数 常量值 public static final int SURFACE_TYPE_GPU 常数已声明不赞成使用,已过时。 被忽略,该常量值在需要时自动设置。 Surface类型:创建适用于GPU加速的Surface 常量值:2 (0 public static final int SURFACE_TYPE_HARDWARE 常数已声明不赞成使用,已过时。 被忽略,该常量值在需要时自动设置。 Surface类型:创建适用于DMA(Direct memory access )引擎和硬件加速的Surface 常量值:1 (0 public static final int SURFACE_TYPE_NORMAL Surface类型:创建用RAM缓存原生数据的普通Surface 常量值:0 (0 public static final int SURFACE_TYPE_PUSH_BUFFERS Surface类型:创建一个不包含原生数据Surface,Surface用到的数据由其他对象提供。如果设置这种类型则就不能调用lockCanvas来获取Canvas对象了,否则将出现错误。 常量值:3 (0 公共方法 public abstract void addCallback (SurfaceHolder.Callback callback) 给Surface持有者添加回调接口,一个持有者可以关联多个回调接口。 参数 callback 新的回调接口 public abstract Surface getSurface () 直接获取Surface对象,这个Surface对象并不总是能获取的。 例如:当使用SurfaceView, Surface的持有者直到该View隶属于当前窗口管理器,确认布局大小和屏幕的位置后才进行创建,你通常需要实现Callback.surfaceCreated寻找出可用的Surface。 注意,如果你通过另外的线程直接访问Surface ,关键在于你正确的实现了Callback.surfaceCreated 和Callback.surfaceDestroyed 函数来确保你访问的线程的Surface是可用的,有效的,当一个线程正在使用该Surface,将不能得到释放,销毁。 这个方法的目的是用于经常需要直接访问Surface对象的框架(通常是通过本地代码),在设计API时总使用SurfaceHolder来改变Surface,而不是Surface对象本身。一个经验规则是应用程序代码不能调用该方法 返回 Surface对象 public abstract Rect getSurfaceFrame () 检索当前Surface的大小 注意:不能修改发挥矩形区域大小,这是唯一安全的调用从SurfaceView的窗口线程,否则就需要放在lockCanvas()里面调用。 返回 Suface的矩形尺寸,左侧和顶部总为0 public abstract boolean isCreating () 使用这个方法是来确定在进程中的Surface是否通过Callback方法正被创建,这是为了确定surfaceChanged(SurfaceHolder, int, int, int).方法是否能用。 返回 True 进程里的Suface正被创建 public abstract Canvas lockCanvas () 开始编辑surface的像素,返回可以用来画到表面的位图的Canvas。如果表面尚未建立或无法进行编辑将返回null。通常需要实现Callback.surfaceCreated找出Surface时方可使用。 Surface的内容再从调用unlockCanvas() 和 lockCanvas(),之间被保存,为此,在Surface区域内的没有个像素都将被画出,仅一个例外是当脏矩形被指定的时候,非脏像素将会被保存。 如果当Surfac

文档评论(0)

sa1fs5g1xc1I + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档