SurfaceView与View的区别

1.为什么提出SurfaceView?

Android系统提供了View进行绘图处理,那么为什么还要提出SurfaceView呢?因为Android系统通过发出VSYNC信号来进行屏幕的重绘,刷新时间间隔为16ms。如果View在16ms内完成绘图的逻辑,那么用户在视觉上就不会出现卡顿感觉;反之如果执行逻辑繁琐,需要频繁刷新页面,例如:游戏界面,那么就会不断阻塞主线程,从而导致画面卡顿。在自定义Log中经常会出现警告:"Skipped 47 frames! The application may be doing too much work on its main thread"为了避免这一问题产生,Android系统提供了SurfaceView组件来解决这个问题。

2.SurfaceView与View的区别?

  View适用于主动更新,SurfaceView适用于被动更新,例如频繁更新

  Viwe在主线程中对画面更新,而SurfaceView 通常会通过子线程来刷新

  View在绘图过程中没采用双缓冲机制,而SurfaceView在底层就实现了双缓冲机制

总结一句话:如果你自定义View需要频繁更新,进行繁琐的绘图逻辑,刷新时处理数据量大,都可以考虑使用SurfaceView替代

3.自定义SurfaceView模版







评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值