android2D游戏的开发中,主要用surfaceview与view。二者的区别
1.画布的更新
view是通过postInvalidate()与invalidate()执行的,也就是说画布是由系统的UI来进行更新的,但是画布如果是更新时间太长,会造成UI线程阻塞,从而引发按键或者去、触屏幕无响应等问题
surfaceview是由新的线程单独执行,所以不会出现这类问题
2.试图机制
view没有双缓冲机制,surfaceview有
但是如果是一款棋牌类游戏,游戏画面是被动更新,画布的绘制是根据玩家的触屏或者按键来响应的话,这时建议用view,从而减少surfaceview单独开一个线程而带来的内存开销!
反之,如果是动作类游戏(RPG)建议surfaceview。
总体来说,surfaceview更适合2D游戏开发,但是具体是情况而定。
1.画布的更新
view是通过postInvalidate()与invalidate()执行的,也就是说画布是由系统的UI来进行更新的,但是画布如果是更新时间太长,会造成UI线程阻塞,从而引发按键或者去、触屏幕无响应等问题
surfaceview是由新的线程单独执行,所以不会出现这类问题
2.试图机制
view没有双缓冲机制,surfaceview有
但是如果是一款棋牌类游戏,游戏画面是被动更新,画布的绘制是根据玩家的触屏或者按键来响应的话,这时建议用view,从而减少surfaceview单独开一个线程而带来的内存开销!
反之,如果是动作类游戏(RPG)建议surfaceview。
总体来说,surfaceview更适合2D游戏开发,但是具体是情况而定。