-
Notifications
You must be signed in to change notification settings - Fork 438
Render
贾俊辉 edited this page Aug 13, 2018
·
2 revisions
Render即渲染视图,框架内包含RenderTextureView(TextureView的包装)和RenderSurfaceView(SurfaceView的包装)两种。
默认使用的是RenderTextureView,使用RenderTextureView的前提是应用的硬件加速必须是开启状态(默认是开启的),否则会出现无画面的情况。
- 优点
动画支持良好,可以获取视频截图
视图不可见时可以保留当前帧不黑屏
- 缺点
必须开启硬件加速,否则无画面,占用内存比SurfaceView高,在5.0以前在主线程渲染,5.0以后有单独的渲染线程。
- 优点
可以在一个独立的线程中进行绘制,不会影响主线程使用双缓冲机制,播放视频时画面更流畅
- 缺点
Surface不在View hierachy中,它的显示也不受View的属性控制,所以不能进行平移,缩放等变换
- AspectRatio_16_9(可能变形,可能黑边)
画面以16:9的比例呈现,屏幕比例与视频比例不一致时画面会变形。
- AspectRatio_4_3(可能变形,可能黑边)
画面以4:3的比例呈现,屏幕比例与视频比例不一致时画面会变形。
- AspectRatio_MATCH_PARENT(可能变形)
画面拉伸铺满视图,屏幕比例与视频比例不一致时画面会变形。
- AspectRatio_FILL_PARENT(部分画面可能不可见)
画面缩放铺满视图,屏幕比例与视频比例不一致时画面等比缩放填充,会造成边缘部分看不到。
- AspectRatio_FIT_PARENT(可能黑边)
画面等比缩放契合视图。
- AspectRatio_ORIGIN(可能黑边)
画面以原画呈现,视频分辨率高于屏幕时以屏幕为准,低于屏幕时以视频尺寸为准。