[quote=引用 12 楼 m-oj 的回复:] 试了下,没有你说的情况
试了下,没有你说的情况
感觉还得结合translate实现
[quote=引用 14 楼 eddysong9280 的回复:] [quote=引用 12 楼 m-oj 的回复:] 试了下,没有你说的情况
整体效果是当来一条新竖线时 画在屏幕最右侧,同时前面所有已经画好的竖线 挨个左移一像素。 看着是屏幕最右侧出现最新的竖线(竖线宽度是1像素),推着前面的竖线一点点左移。右边不停的进线,屏幕左侧不停的出。 现在是在定时器里走如下程序:pointX=屏幕宽度(假设=1080),这样drawPoint始终画在屏幕最右侧。画完画布左移一像素。当有新数据时,pointX= 1080,但是canvas已经左移了,导致再drawPoint时,所画的点没有画在屏幕最右侧。 不知这个pointX, translate 怎么结合实现最右侧进,一点点左出的效果? //画最新的1 ping for (int n = 0; n < mPingData.size(); n++) { double[] point = mPingData.get(n); SonarUtils.SonarCard card = SonarUtils.getColorIdByPointDb(point[0], point[2], point[1]); mPaint.setColor(getResources().getColor(card.getColoValuerId())); float pointY = ((float) getHeight() / (float) mPingData.size()) * (float) n; mBufferCanvas.drawPoint(pointX, pointY, mPaint); //画一像素的竖线点 } mBufferCanvas.translate(-1, 0); invalidate();
[quote=引用 3 楼 m-oj 的回复:] [quote=引用 2 楼 eddysong9280 的回复:] [quote=引用 1 楼 m-oj 的回复:] 事先画好这个图,然后transaction动画从右到左移动就好了
80,351
社区成员
91,288
社区内容
加载中
试试用AI创作助手写篇文章吧