美文网首页高级
SurfaceView和TextureView

SurfaceView和TextureView

作者: 海东青_fb7a | 来源:发表于2021-06-17 16:35 被阅读0次

    SurfaceView

    • SurfaceView中采用了双缓冲机制,保证了UI界面的流畅性,同时 SurfaceView 不在主线程中绘制,而是另开辟一个线程去绘制,所以它不妨碍UI线程;

    • SurfaceView 继承于View,他和View主要有以下三点区别:

    (1)View底层没有双缓冲机制,SurfaceView有;

    (2)view主要适用于主动更新,而SurfaceView适用与被动的更新,如频繁的刷新

    (3)view会在主线程中去更新UI,而SurfaceView则在子线程中刷新;

    • SurfaceView的内容不在应用窗口上,所以不能使用变换(平移、缩放、旋转等)。也难以放在ListView或者ScrollView中,不能使用UI控件的一些特性比如View.setAlpha()

    View:显示视图,内置画布,提供图形绘制函数、触屏事件、按键事件函数等;必须在UI主线程内更新画面,速度较慢

    • SurfaceView:基于view视图进行拓展的视图类,更适合2D游戏的开发

    TextureView

    • 与SurfaceView相比,TextureView并没有创建一个单独的Surface用来绘制,这使得它可以像一般的View一样执行一些变换操作,设置透明度等。另外,Textureview必须在硬件加速开启的窗口中。
    • 在android 7.0上系统surfaceview的性能比TextureView更有优势,支持对象的内容位置和包含的应用内容同步更新,平移、缩放不会产生黑边。 在7.0以下系统如果使用场景有动画效果,可以选择性使用TextureView


      image.png

    相关文章

      网友评论

        本文标题:SurfaceView和TextureView

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