• android自定义View_3——Optimizing the View


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

  • 相关阅读:
    idea的使用和安装破解 2019.2
    get请求和post请求的区别
    MySQL-事务
    MySQL-mysql的查询练习
    MySQL-mysql的多表查询
    CodeForces
    2018宁夏邀请赛网赛 I. Reversion Count(java练习题)
    HDU
    Codeforces Round #479 (Div. 3)解题报告
    nyoj 1274信道安全 第九届河南省赛(SPFA)
  • 原文地址:https://www.cnblogs.com/qinghuaideren/p/3494241.html
Copyright © 2020-2023  润新知