关于自定义View 浮窗闪烁 解决 | View 的性能优化(笔记)

为了在执行invalidate()时,减轻 onDraw()的负担

1.Vlew重写前,需要分离出静态的视图(不因为View组件展开后重新刷新组件 invalidate)和动态的视图,分别将两部分视图画入两个不同的BitMap,

2.静态视图的绘制函数在onDraw()函数调用前执行,提前构建好背景。

   如果需要使用到本组件View内部的测量函数结果(如 getHeight(),getWidth()等),则需要在onMeasure()(此函数用于测量组件大小时调用)后调用,在onDraw()前调用

   可以在 onLayout()(此函数在测量组件布局的时候调用)里调用。

3.动态视图的绘制函数在onDraw()里面调用,这样可以在进行 invalidate()(此函数会调用onDraw())的时候,重新调用动态视图的绘制函数。



  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值