9

大家好:我正在编写一个继承自 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);
}
4

2 回答 2

23

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

尝试将最后一行更改为:

canvas.drawText(text, 0, 20, paint);
于 2010-12-07T01:13:44.790 回答
-2

到处都是很棒的建议,真的很棒。下一次,如果你在评论中询问那个人,或者在发布它作为答案之前,他是否尝试过完全显而易见的事情,那就太好了。你真的认为当他到达一个不工作的点的那一刻,他没有尝试就直接来到 Stack Overflow?

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

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

于 2012-11-27T11:12:51.273 回答