0

我对这个实现有问题:

       if(blueActive) {
            blueFormat = new LineAndPointFormatter(Color.rgb(0,0,255), null, null);
            blue = new SimpleXYSeries(xArray,yArray, selectedDate);
            Log.e(TAG , "blueActive");
            cvPlot.addSeries(blue, blueFormat);
        }
        if(redActive) {
            redFormat = new LineAndPointFormatter(Color.rgb(255,0,0), null, null);
            red = new SimpleXYSeries(xArray,yArray, selectedDate);
            Log.e(TAG , "redActive");
            cvPlot.addSeries(red, redFormat);
        }
        if(greenActive) {
            greenFormat = new LineAndPointFormatter(Color.rgb(0,255,0), null, null);
            green = new SimpleXYSeries(xArray,yArray, selectedDate);
            Log.e(TAG , "greenActive");
            cvPlot.addSeries(green, greenFormat);
        }

        cvPlot.redraw();

该系列使用正确的 xArray 和 yArray 绘制,但是当图形重绘时,所有图都是相同的颜色。我正在寻找这段代码来用三种不同的颜色重新绘制绘图。我在这里做一些逻辑错误的事情吗?

4

1 回答 1

0

尽管这个问题对所涉及的其他代码的描述性不是很好,但最终的答案是将其添加到开始添加绘图过程的 onClick 中:

xArray.clear(); yArray.clear();

线条是重叠的,当添加下一种颜色时,由于在蓝色之后选择了红色图,因此两个数组增长到包含蓝色和红色的点,看起来颜色没有变化。换句话说,红色数组包含蓝色数组,并且由于这些点与蓝色图相同,所以我看不到蓝色图,因为红色图在顶部!

早在这个问题出现之前我就设置了一个 Log.d,但实际上并没有注意到数组加倍,因为我没有记录计数,因为我只想看到 x 和 y 值正在填充。

记录您的数组计数并清除您的数组 rook dawg!

于 2013-06-05T20:38:59.623 回答