代码之家  ›  专栏  ›  技术社区  ›  Vince.Wu

为什么我对canvas.drawtext()的调用不起作用

  •  7
  • Vince.Wu  · 技术社区  · 14 年前

    大家好: 我正在编写从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 回复  |  直到 12 年前
        1
  •  20
  •   dcarneiro    14 年前

    它没有绘制任何内容,因为文本坐标在左下角。因为你试图在0.0上画画,它会在屏幕上方画画。

    尝试将最后一行更改为:

    canvas.drawText(text, 0, 20, paint);
    
        2
  •  -2
  •   Justin Buser    12 年前

    周围的建议都很好,真的很好。下一次,如果你在评论或者其他什么东西中问他是否在作为答案发布之前尝试过完全显而易见的方法,那就更好了。你真的认为当他第二次到达一个不起作用的点的时候,他只是直接到堆栈溢出而不做任何尝试吗?

    我确实有另外一个建议,那就是疯狂的足够多是建立在整个问题的基础上的,而不仅仅是在没有太多实际知识的情况下可以回答的部分。

    我建议您在一个不在textview子类中的画布上尝试DrawText调用,这样它就不会被管理它的Drawable状态的textView中的几百行代码覆盖。