Contex
SurfaceView性能优于TextureView。但TextureView可以做动画,有OpenGL的多重渲染,有额外的纹理,可以直接读取数据。
让SurfaceView做overlay view,并背景透明
public CacheTextureOverlayView(Context context, @Nullable AttributeSet attrs, int defStyleAttr) {
super(context, attrs, defStyleAttr);
init();
}
private void init() {
setZOrderOnTop(true);
SurfaceHolder holder = getHolder();
holder.setFormat(PixelFormat.TRANSLUCENT);
}
测试
进行绘制、更新矩阵变化操作
- TextureView 20~40ms,而且更加耗电(1k毫安持续1-2m)
07-22 17:07:15.958 onDraw draw cast: 24
07-22 17:07:16.022 onDraw draw cast: 24
07-22 17:07:16.107 onDraw draw cast: 48
07-22 17:07:16.197 onDraw draw cast: 48
07-22 17:07:16.259 onDraw draw cast: 22
07-22 17:07:16.347 onDraw draw cast: 43
07-22 17:07:16.431 onDraw draw