为什么我的Canvas.drawText()调用不起作用

时间:2010-10-25 03:03:15

标签: android textview android-canvas ondraw drawtext

大家好:    我正在编写一个继承自TextView的类,并覆盖其onDraw()方法,但在该方法中,我的canvas.drawText()调用似乎不起作用,代码如下所示:

protected void onDraw(Canvas canvas) {
    // super.onDraw(canvas);
    Paint paint = new Paint();
    paint.setColor(android.graphics.Color.WHITE);
    paint.setTextSize(20);

    String text = "hello";
    canvas.drawText(text, 0, 0, paint);
}

2 个答案:

答案 0 :(得分:20)

它没有绘制任何东西,因为文本坐标是左下角。由于你试图在0,0上绘图,它将在屏幕上方绘制。

尝试将最后一行更改为:

canvas.drawText(text, 0, 20, paint);

答案 1 :(得分:-2)

周围的优秀建议,非常棒的工作人员。下一次虽然如果你在评论中询问这个人或者他是否在尝试将其作为答案之前完全显而易见的话会很好。你是否真的认为他第二次到达了一个无法正常工作的点,他只是直接进入Stack Overflow而没有进行实验?

我确实有一个替代建议,疯狂的基于整个问题,而不仅仅是在没有太多实际知识的情况下可以回答的部分。

我建议在不在TextView子类中的Canvas上尝试drawText调用,因为它不会被TextView中管理它的可绘制状态的几百行代码覆盖。