一、引入:
Android提供了View來(lái)進(jìn)行繪圖處理,在大部分情況下,View都能滿足繪圖需求。大家都知道View是通過(guò)刷新來(lái)重繪視圖,Android系統(tǒng)通過(guò)發(fā)出VSYNC信號(hào)來(lái)進(jìn)行屏幕的重繪,刷新的間隔時(shí)間為16ms。如果在16ms內(nèi)View完成了你所需要執(zhí)行的所有操作,那么用戶在視覺(jué)上,就不會(huì)產(chǎn)生卡頓的感覺(jué);反之,如果操作的邏輯過(guò)多時(shí),就會(huì)掉幀從而使得用戶感覺(jué)到卡頓。特別的需要頻繁刷新的界面上,如游戲(60FPS以上),就會(huì)不斷阻塞主線程,從而導(dǎo)致界面卡頓。而Android提供了SurfaceView來(lái)解決這種情況。
二、SurfaceView和View的不同之處
SurfaceView和View的不同之處:
View | SurfaceView |
適用于主動(dòng)更新 | 適用于被動(dòng)刷新 |
在主線程中進(jìn)行畫(huà)面更新 | 通常通過(guò)一個(gè)子線程來(lái)進(jìn)行畫(huà)面更新 |
延伸閱讀
我想了解如何學(xué)習(xí) |