path 动画与canvas 动画在部分机型不显示的问题

最近在用path写一个心电图动画,发现动画完成以后在5.0以上正常显示,5.0以下的机型不显示,反复看了代码发现PathMeasure的getSegment(float startD, float stopD, Path dst, boolean startWithMoveTo)在API<=19的时候开启硬件加速会引起这个path 动画不可见。

先说官方提供的解决方案:在调用getSegment(float startD, float stopD, Path dst, boolean startWithMoveTo)之后再加一行代码:dst.rLineTo(0, 0)即可解决硬件加速的bug。

看了官方文档点击打开链接第二段中有说

However, because hardware acceleration is not supported for all of the 2D drawing operations, turning it on might affect some of your custom views or drawing calls. Problems usually manifest themselves as invisible elements, exceptions, or wrongly rendered pixels. To remedy this, Android gives you the option to enable or disable hardware acceleration at multiple levels. See Controlling Hardware Acceleration.

但是,由于所有2D绘图操作都不支持硬件加速,因此将其打开可能会影响某些自定义视图或绘图调用。问题通常表现为不可见的元素,例外或错误渲染的像素。为了解决这个问题,Android允许您在多个级别启用或禁用硬件加速。请参阅控制硬件加速。

硬件加速的原理请参考点击打开链接



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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值