【问题标题】:Android: Animate a line being drawn using canvasAndroid:动画使用画布绘制的线条
【发布时间】:2013-12-21 07:13:17
【问题描述】:

我有这个自定义视图。在这个自定义视图中,我正在绘制一个折线图。我使用画布和绘制对象来绘制线的点,并使用画布的 drawLine() 函数连接点本身。这工作得很好,除了我正在寻找动画正在绘制的线。

我认为我可以根据线路的长度将 drawLine 调用分成多个调用,每次调用之间的延迟很小,但我觉得这会占用大量资源,并且在处理大量点/线。你们有什么感想?还有其他方法吗?

欢迎任何提示/提示,谢谢。

【问题讨论】:

    标签: android jquery-animate android-canvas


    【解决方案1】:

    实际绘图将在 canvas.invalidate() 上执行。如果您将无效调用之间的时间设置为例如 1/24 秒,则您可能有很多调用来绘制线条 - 您将在屏幕上每秒 24 次更新,就像在电影中一样。我认为,如果您有数百或数千条线,那么绘制线条的实际调用将不是问题。

    【讨论】:

    • 如果我同时调用 drawLine() 和无效,您认为性能会受到怎样的影响?例如,如果我将绘图分解为对 drawLine 的调用,然后再调用一次无效(例如 10 次),而不是调用一次 drawLine 并使其无效(导致立即绘制线条),会发生什么?
    • 不是一个好主意。当您需要实际显示更新画布的结果时,您应该调用 invalidate。一个人不能看到比 25 更频繁的更新,或者最好是 100hz,你最好制作一个计时器,它会调用 invalidate 而不是在画线时这样做。正在写入的行将被“缓存”,并且每 25 或 50 或 100hz 将“批量”绘制一次
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-07-19
    • 2014-06-29
    • 2011-07-19
    • 2020-05-25
    • 2011-02-08
    • 2014-10-18
    相关资源
    最近更新 更多