Android游戏编程之SurfaceView进行连续渲染

本文介绍了Android游戏编程中如何利用SurfaceView进行连续渲染。SurfaceView是一个处理Surface的视图,允许在UI线程之外的独立线程进行渲染。通过SurfaceHolder的lockCanvas()和unlockAndPost()方法,可以安全地在Surface上进行绘制。文章还讨论了Surface的创建与有效性检查,以及在活动的onResume()和onPause()中启动和停止渲染线程的技巧,强调了volatile修饰符的重要性。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

以下均转自Android游戏编程入门经典,转载请标明出处

SurfaceView类是一个用于处理Surface的视图,也是Android API提供的另一个类。

什么是Surface?它是一个抽象的原是缓冲区,被屏幕组合器用于渲染特定视图。屏幕组合器是Android上所有渲染的幕后推手,并最终负责将所有的像素点推送到GPU。

我们的目标就是在一个独立的线程中执行渲染,而不用大量占用UI线程,因为UI线程还有很多工作要做。SurfaceView类提供了一种在UI线程之外的线程中进行渲染的方式。


SurfaceHolder和锁定

为了在UI线程之外的另一个不同线程中渲染到SurfaceView,我们需要获得一个SurfaceHolder类的实例,如下所示:

SurfaceHolder holder = surfaceView.getHolder();

SurfaceHolder是Surface的一个包装,可为我们做一些辅助工作。它提供两个方法:

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值