0

你好所有关于堆栈溢出的第一篇文章!

我试图在画布上绘制多条线,但使用不同的颜色。我的问题是线条颜色始终与数组中的最后一行相同。我以 30Hz 的频率在屏幕上逐渐绘制垂直线,类似于没有任何间距的条形图。我打电话给视图。Invalidate() 让视图 onDraw() 运行并绘制线条。

    @Override
    protected void onDraw(Canvas canvas) {
        // TODO Auto-generated method stub
        super.onDraw(canvas);

        if (plotInfo == null)
            return;


        for (int i = 0; i < plotInfo.length; i++) {
            //paintlineinfo = String.valueOf( plotInfo[i].paintOfLine.getColor());
            canvas.drawLine(i, mDisplay.getHeight(), i, mDisplay.getHeight()-plotInfo[i].linePositionY, plotInfo[i].paintOfLine);
        }
    }

我相信我可能会使用 Open GL,但我目前正试图避免使用它,除非有人能指出我正确的方向以获得一篇可能对我有帮助的好文章。

在某些时候,我想让线条有多种颜色。

任何帮助将不胜感激...

4

1 回答 1

0

我不知道你从那里得到颜色,试试:

@Override
protected void onDraw(Canvas canvas) 
{
    // TODO Auto-generated method stub
    super.onDraw(canvas);

    if (plotInfo == null)
        return;

    Paint paint = new Paint(Paint.ANTI_ALIAS_FLAG);             

    for (int i = 0; i < plotInfo.length; i++) {
        paint.setColor( yourArrayOfColours.get(i) );
        canvas.drawLine(i, mDisplay.getHeight(), i, mDisplay.getHeight()-plotInfo[i].linePositionY, paint);
    }
}
于 2012-05-18T14:48:16.923 回答