view与surfaceview画图的区别
View是封装了一个canvas来画图的,并且画图只能在主线程中执行。如ImageView就是继承的View来画图的,用View中的canvas来画
Surfaceview也是继承于view,但他封装了一个surface对像。Surface可以使用后台线程绘制图。就这点就是与直接用view里面封装的canvas
的区别。surfaceivew最后画图其实还是用的canvas来完成的只是借助surface来实现后台线程制图的功能
surfaceivew对于那些资源敏感的操作,或者那些要求快速更新或者高速帧率的地方,例如使用3D图形,创建游戏,或者实时预览摄像头,这一点特别有用。
可以直接从内存或硬件设备比如相机等取得图像数据,是个非常重要的绘图容器。它的特性是:可以在主线程之外的线程中向屏幕绘图。这样可以避免画图任务繁重的时候造成主线程阻塞,从而提高了程序的反应速度。绘制的东西直接复制到显存从而显示出来,这使得显示速度会非常快,而在Surface 被销毁之前必须结束。