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