首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

surfaceview详解

1.概念       SurfaceView是View类的子类,可以直接从内存或者DMA等硬件接口取得图像数据,是个非常重要的绘图视图。它的特性是:可以在主线程之外的线程中向屏幕绘图上。...在游戏开发中多用到SurfaceView,游戏中的背景、人物、动画等等尽量在画布canvas中画出。...2.实现方法 1)实现步骤     a.继承SurfaceView     b.实现SurfaceHolder.Callback接口 2)需要重写的方法 public void surfaceChanged...几个需要注意的方法: abstract void addCallback(SurfaceHolder.Callback callback);   // 给SurfaceView当前的持有者一个回调对象。...4)总结整个过程   继承SurfaceView并实现SurfaceHolder.Callback接口 ----> SurfaceView.getHolder()获得SurfaceHolder对象 --

1.9K90
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    什么是 SurfaceView

    SurfaceView简介 简单的说SurfaceView就是一个有Surface的View里面内嵌了一个专门用于绘制的Surface,SurfaceView控制这个Surface的格式和尺寸以及绘制位置...SurfaceView就是在Window上挖一个洞,它就是显示在这个洞里,其他的View是显示在Window上,所以View可以显式在 SurfaceView之上,你也可以添加一些层在SurfaceView...SurfaceView自身,因此将SurfaceView和window绑定在一起,而前面提到过每个window对应一个Surface, 所以SurfaceView也就内嵌了一个自己的Surface,可以认为...surfaceview变得可见时,surface被创建;surfaceview隐藏前,surface被销毁。 这样能节省资源。...上绘制新视图,再unlockCanvasAndPost(canvas)此视图,那么上传的这张canvas将替换原来的frontCanvas作为新的frontCanvas,原来的frontCanvas将切换到后台作为

    1.2K11

    SurfaceView的那点事儿

    ---- SurfaceView和View的区别 SurfaceView和View的区别: View主要适用于主动更行的情况,而SurfaceView适用于被动更新,例如频繁的刷新。...View在主线程中对画面进行,而SurfaceView通常会在一个子线程中进行页面的刷新 View在绘图时没有使用双缓冲机制,而SurfaceView在底层实现了双缓冲机制 总之,如果你的自定义View...---- SurfaceView的使用 SurfaceView的使用虽然比View要复杂,但是SurfaceView在使用时有一套使用的模板代码,大部分的SurfaceView绘图操作都可以套用这样的模板代码来进行编写...通常情况下,使用以下步骤来创建一个SurfaceView的模板 创建SurfaceView 创建自定义的SurfaceView 继承自 SurfaceView,并且实现两个接口:SurfaceHolder.Callback...在自定义的SurfaceView的构造方法中,需要对SurfaceView进行初始化。

    78830

    聊聊SurfaceView和TextureView

    播放视频或者渲染其他的动画的时候,有两个View组件可供选择,SurfaceView和TextureView,GLSurfaceView是SurfaceView是子类,这儿还是归类到SurfaceView...SurfaceView实现机制 双缓冲机制 TextureView实现机制 TextureView和SurfaceView的优缺点 1.SurfaceView实现机制 SurfaceView继承自View...SurfaceView为什么要这么设计? 优点:这样的好处是对这个Surface的渲染可以放到单独线程去做,渲染复杂的动画不会影响主线程的的响应。...4.TextureView和SurfaceView的优缺点 SurfaceView TextureView 内存 低 高 耗电 低 高 绘制效率 及时 1 ~ 3帧的延迟 截图 不支持 支持 动画 不支持...支持 不过GLSurfaceView是SurfaceView的子类,除了拥有SurfaceView的优点,GLSurfaceView也支持截图和动画操作。

    4.2K21

    SurfaceView 与 TextureView 详解

    SurfaceView 简介 简单的说SurfaceView就是一个有Surface的View里面内嵌了一个专门用于绘制的Surface,SurfaceView 控制这个 Surface 的格式和尺寸以及绘制位置...SurfaceView 就是在 Window 上挖一个洞,它就是显示在这个洞里,其他的View是显示在Window上,所以View可以显式在 SurfaceView之上,你也可以添加一些层在SurfaceView...所以SurfaceView也就内嵌了一个自己的Surface,可以认为SurfaceView是来控制Surface的位置和尺寸。...上绘制新视图,再unlockCanvasAndPost(canvas)此视图,那么上传的这张canvas将替换原来的frontCanvas作为新的frontCanvas,原来的frontCanvas将切换到后台作为...SurfaceView如果为用户可见的时候,创建SurfaceView的SurfaceHolder用于显示视频流解析的帧图片,如果发现SurfaceView变为用户不可见的时候,则立即销毁SurfaceView

    12.9K60

    相机、OpenGL、视频、Flutter和SurfaceView

    ----张风捷特烈 ---- 一、关于SurfaceView 对于视频、相机、游戏、Flutter等需要高性能渲染的场景,你都会发现SurfaceView的身影,如果你想进行高性能的渲染,那么SurfaceView...本篇会从一下几点的极简操作,来让你对SurfaceView有个感性的认知: [1].Camera的预览和SurfaceView的使用 [2].Camera2的预览和SurfaceView的使用 [...---- 1.Camera使用SurfaceView开启预览 SurfaceView依赖SurfaceHolder类,所以两者形影不离。...public class Camera2SurfaceView extends SurfaceView implements SurfaceHolder.Callback { private Handler...对于Android端, Flutter所有视图都在FlutterView中进行绘制,而FlutterView便是继承自SurfaceView 这也足以显示SurfaceView是多么强大 public

    3.1K20
    领券