前言:现在你已经有了一个自定义的view了,并且支持手势和过度动画等属性,现在你要确认这个view
有够快的速度,为了使其在UI上不会显得迟钝或是卡停,你要保证view动画,能每秒最好有60帧。
一:优化代码,减少请求次数
1.为了使自定义的view能更快的响应UI,要尽量减少频繁调用子程序中的代码量,不要把太多的
代码放在onDraw()方法中。
2.尽量减少调用 invalidate(),每一次调用都会调用onDraw()方法,若是要调用的话尽量调用,
带4个参数的invalidate()方法,而不是没有参数,因为带四个参数的,只是重新绘制view的一
部分,而不是view全部内容。
3.还有一个对提高UI效率的很重要的方法,就是减少view的布局深度,这样在初始化的时候,效
率更高。
4.如果自定义的view是很复杂,你可以使用继承ViewGroup来自定义view。
二:使用硬件加速器,来更快的显示UI
1.在android3.0中,提供的2D图形绘制系统,他是通过GPU来实现的。通过适当的使用GPU,
会使你的UI显示效果明显得到提升,但并不是所有的应用都适合使用GPU。android的框架
使你有能力控制应用的哪部分使用加速,哪部分不用。
2.可以通过阅读Hardware Acceleration来了解硬件加速的使用。在使用的时候,注意SDK的
版本要在11以上,才能使用。
3.一旦你使用了硬件加速,也许会显著提升应用的性能,也可能你看不出来。硬件加速非常适
用于图片的操作,如旋转,缩放等。为了获得GUP的效果,应该将那些频繁的工作交个他去
做,因为这是他擅长的。
4.使用的时候需要到LAYER_TYPE_HARDWARE标签:
提示:通过使用GPU,onDraw()方法只调用一次,之后对图片的改变都是操作GPU中缓存的Bitmap。
4.GPU虽然能提高UI的性能,但是他是使用底层的缓存控件实现的,所以不能无限度得去使用,所以有
两个标签,来提示GPU是否缓存图片 LAYER_TYPE_NONE停止缓存,LAYER_TYPE_HARDWARE缓存。