美文网首页
SurfaceView相关梳理

SurfaceView相关梳理

作者: lyzaijs | 来源:发表于2017-02-26 14:48 被阅读112次

    SurfaceView,GlSurfaceView,SurfaceTexture,TextureView关系与概念梳理。

    SurfaceView

    Android1.0中api,可以在工作线程中进行渲染。不在View hierachy中,它的显示不受View的属性控制(不能进行平移、缩放、等变换)


    SurfaceView结构

    GLSurfaceView

    从Android 1.5(API level 3)开始加入,作为SurfaceView的补充。在SurfaceView的基础上,它加入了EGL的管理,并自带了渲染线程。

            mGLView = new GLSurfaceView(this);  
            mGLView.setRenderer(new RendererImpl(this)); 
    

    SurfaceTexture(纹理)

    从Android 3.0(API level 11)加入。和SurfaceView不同的是,它对图像流的处理并不直接显示,而是转为GL外部纹理,因此可用于图像流数据的二次处理(如Camera滤镜,桌面特效等)。
    ,SurfaceTexture从图像流(来自Camera预览,视频解码,GL绘制场景等)中获得帧数据,当调用updateTexImage()时,根据内容流中最近的图像更新SurfaceTexture对应的GL纹理对象,接下来,就可以像操作普通GL纹理一样操作它.

    SurfaceTexture是从Android3.0(API 11)加入的一个新类。这个类跟SurfaceView很像,可以从camera preview或者video decode里面获取图像流(image stream)。但是,和SurfaceView不同的是,SurfaceTexture在接收图像流之后,不需要显示出来。

    TextureView

    在4.0(API level 14)中引入。它可以将内容流直接投影到View中,可以用于实现Live preview等功能。和SurfaceView不同,它不会在WMS中单独创建窗口,而是作为View hierachy中的一个普通View,因此可以和其它普通View一样进行移动,旋转,缩放,动画等变化。值得注意的是TextureView必须在硬件加速的窗口中。

    摘自:Android 5.0(Lollipop)中的SurfaceTexture,TextureView, SurfaceView和GLSurfaceView

    相关文章

      网友评论

          本文标题:SurfaceView相关梳理

          本文链接:https://www.haomeiwen.com/subject/nayowttx.html