前言:现在你已经有了一个自定义的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缓存。

最新文章

  1. SQL基本语句汇总
  2. c语言函数, 函数调用及函数递归
  3. Ice分布式程序设计—IceBox(Hello World Application)
  4. .net学习笔记---webconfig的读与写
  5. 如何用Apache POI操作Excel文件-----如何在已有的Excel文件中插入一行新的数据?
  6. URAL 1069 Prufer Code(模拟)
  7. asp.net MVC 中@Html.Partial,@Html.Action,@Html.RenderPartial,@Html.RenderAction区别
  8. 【 HDU 1255】 覆盖的面积(矩阵面积交,线段树,扫描法)
  9. Search 和 Select比较 - 浅谈
  10. poj1665
  11. 【IOS实例小计】打开google地图-web
  12. LinQ动态排序
  13. wso2 CEP集成storm实验
  14. 情人节,教大家使用css画出一朵玫瑰花。
  15. 顺序线性表 ---- ArrayList 源码解析及实现原理分析
  16. C#操作符??,?,?:功能解析
  17. OpenStack 命令行速查表
  18. 01_ if 练习
  19. MACE移植要求
  20. Linux基础命令---ifdown、ifup

热门文章

  1. AJAX && JSON之讲解
  2. makefile opencv的案例
  3. Druid对比Vertica
  4. SpringBoot修改默认端口号
  5. Docker默认存储路径修改
  6. 对AOP切面的一些整理与理解
  7. jQuery编程小结
  8. axios 和 vue-axios
  9. 一个256行代码的第一人称引擎(Direct2D移植版)
  10. React Native : 自定义视图