自定义视图中的android canvas.drawText

时间:2012-07-17 11:52:11

标签: android canvas android-custom-view custom-view

我有一个自定义视图,我想用这些参数drawText。

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在日志中看到正确的值,但不会绘制文本。 任何人都可以帮助我吗?

3 个答案:

答案 0 :(得分:2)

我认为它会超出屏幕尺寸,为Y使用较少的值并绘制。

可能是绘画功能的问题

canvas.drawText(String.valueOf(angle_Top), 15, 25, new Paint());

答案 1 :(得分:1)

canvas.drawText(String.valueOf(stopY), 40, stopY, Paint);
                ^^^^^^^^^^^^^^^^^^^^^
你设置了油漆的颜色吗? 例如:

mPaint.setColor(Color.RED);

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

尝试stopY=40;并检查输出

答案 2 :(得分:1)

感谢你的回答;我找到了答案

int stopY = 500;

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

这很好用。正如你所说的那样,我使用了

scrollTo(0,stopY);

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

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

它已经毫无问题地将它绘制在那里。