1

我有一个自定义视图,我想在其中使用这些参数绘制文本。

int stopY = 500;

// ...

Log.info("Drawing line " + line + " at " + String.valueOf(stopY));
canvas.drawText(line, 40, stopY, Paint);

我有一个文本数组,我正在画画

 for (int i = startLineNumber; i < (startLineNumber + linesVisible); i++, screenDisplayLine++)
        {
            if (i >= totalLines)
            {
                break;
            }
            int startY = (int) (i*lineSpacing + (screenDisplayLine * lineSpacing));
            int stopY = startY + lineSpacing;
       canvas.drawText(line, 40, stopY, Paint);//stop y increments by 20 every time i use 
    }

它可以直接使用,但是当我需要 startnumber 为 50 时

这意味着

 stopy = stopY+(linenumber*20)//(stopY + (50 * 20))

但在这种情况下它失败了

任何帮助

通过LogCat可以在日志中看到正确的值,但是没有画出文字。谁能帮我吗?

4

3 回答 3

2

我认为它超出了屏幕尺寸,使用较少的 Y 值和绘图。

或者

油漆功能可能有问题

canvas.drawText(String.valueOf(angle_Top), 15, 25, new Paint());
于 2012-07-17T11:58:16.730 回答
1
canvas.drawText(String.valueOf(stopY), 40, stopY, Paint);
                ^^^^^^^^^^^^^^^^^^^^^

你设置油漆的颜色了吗?例如:

mPaint.setColor(Color.RED);

或者

您正在使用stopY=500;// 可能不在您的屏幕上

尝试stopY=40;检查输出

于 2012-07-17T11:53:36.347 回答
1

感谢您的两个回答;我找到了答案

int stopY = 500;

scrollTo(0,stopY);
canvas.drawText(line, 0, stopY, Paint);

这工作正常。正如你所说,它超出了我使用的屏幕尺寸

scrollTo(0,stopY);

这样它会滚动到屏幕上的那个点,当我使用

canvas.drawText(line, 0, stopY, Paint);

它把它画在那里没有任何问题。

于 2012-07-18T05:53:44.097 回答