资源下载 - 从此开始!

下载我_精品源码软件教程资源网

您的位置:首页 > 网络学院 > 正文

Android中TextureView与SurfaceView用法区别总结

2018-05-19 21:26 来源:www.xiazaiwo.net 编辑:admin

SurfaceView和TextureView均继承于android.view.View

与其它View不同的是,两者都能在独立的线程中绘制和渲染,在专用的GPU线程中大大提高渲染的性能。

一、SurfaceView专门提供了嵌入视图层级的绘制界面,开发者可以控制该界面像Size等的形式,能保证界面在屏幕上的正确位置。

但也有局限:

由于是独立的一层View,更像是独立的一个Window,不能加上动画、平移、缩放;

两个SurfaceView不能相互覆盖。

二、TextureView更像是一般的View,像TextView那样能被缩放、平移,也能加上动画。

TextureView只能在开启了硬件加速的Window中使用,并且消费的内存要比SurfaceView多,并伴随着1-3帧的延迟。

三、TextureView和SurfaceView都是继承自View类的,但是TextureView在Andriod4.0之后的API中才能使用。

SurfaceView可以通过SurfaceHolder.addCallback方法在子线程中更新UI,TextureView则可以通过TextureView.setSurfaceTextureListener在子线程中更新UI,个人认为能够在子线程中更新UI是上述两种View相比于View的最大优势。

 但是,两者更新画面的方式也有些不同,由于SurfaceView的双缓冲功能,可以是画面更加流畅的运行,但是由于其holder的存在导致画面更新会存在间隔(不太好表达,直接上图)。并且,由于holder的存在,SurfaceView也不能进行像View一样的setAlpha和setRotation方法,但是对于一些类似于坦克大战等需要不断告诉更新画布的游戏来说,SurfaceView绝对是极好的选择。但是比如视频播放器或相机应用的开发,TextureView则更加适合。

打赏一下,我们会为大家提供更多优质资源!

相关文章,95%的人会看!{有内幕、有真相...}

看过本文的人还看过

关闭

微信扫一扫

站长微信账号