我正在设计一个自定义 View ,它是一个 X/Y 图。这是一个随时间向左滚动的移动图表,新的 Y 值以每秒 10 个的速度不断出现。
我已经能够让它与整数数组一起工作,其中数组索引是 X 值,整数值是 Y 值,但这看起来效率低得可怕(因为每次都需要重新绘制,我必须循环 800 多次才能绘制图表)。然后我们每秒重复 10 次。呸。
谁能想到一个可绘制的对象,我可以向其绘制点并执行某种滚动变换,然后每次只绘制新的点,而不是整个 Canvas ?
还有其他想法吗?
谢谢!
最佳答案
您可以使用 Canvas.drawPoints() 并让 Canvas 在 native 代码中完成工作:http://d.android.com/reference/android/graphics/Canvas.html#drawPoints(float[],%20int,%20int,%20android.graphics.Paint)你也可以聪明地从你知道在屏幕上的第一个点的偏移量开始。此外,要进行滚动,您必须以某种方式重新绘制整个 Canvas。您也可以使用离屏位图来耍花招。
关于android - 我可以在其中存储点以加快绘制速度的可绘制对象?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3535955/