基础一:android中的视图
谈到Android中的视图,不得不提的有View、SurfaceView、TextureView和GLSurfaceView这四种视图,各有优缺点,使用的方向、方法、内部运行机制都不太相同。
View:最常用,在Android中运行在主线程中绘画,用于直接显示视图。构建流程为:计算view大小、layout布局在父view中、画图。
SurfaceView:双缓存机制,即两张画布,一张临时画,另一张最终显示,交替进行。在子线程中画,在主线程中刷新显示,不会导致主线程阻塞,且速度较快,往往用于动态图展示、视频播放、游戏显示、照相机实时画面。自带Surface(内存中的一部分作为缓冲区)。
TextureView:SurfaceView内容不在应用窗口上显示,所以不能进行一些变换,如平移、缩放、旋转等。TextureView没有Surface,所以可以像一般的View一样进行变换操作,TextureView必须在硬件加速开启的窗口中。
获取用于渲染内容的SurfaceTexture,来做文章即可。myTexture.setRotation(90.0f);一句代码即可改变显示角度。
GLSurfaceView:import android.opengl.GLSurfaceView;这段代码即可知道这个继承自SurfaceView的类是做什么的了。但是这个必须用在有GPU加速的环境下,配合OpenGlES使用。适配性差。