问题:在自定义控件中,我们可以集成view或者SurfaceView,我们什么时候使用View,什么时候使用SurfaceView呢?
View:
使用情景:如果没有动态效果,或者动画效果比较简单,使用View最合适不过了
线程:在主线程中绘制,所以在不影响UI线程的情况下比较适用。
假如我们的自定义控件有连续不断的动画,这样就会比较频繁的占用主线程,当我们再做其在主线中的UI操作时势必会影响,轻则出现卡顿,重则出现ANR,那么我们就要用SurfaceView了。
SurfaceView:
使用场景:有时间连续的动画效果
线程:SurfaceView的绘制,我们可以在非UI线程中进行,我们可以控制绘制的帧率,最重要的是不影响主线程的UI操作等。
总结:
被动操作多的情况,或许有少许动画,但是不会长时间的动画,我们用View就行了,但是有长时间持续动画的场景,我们需要使用SurfaceView来进行绘制。