почему мой вызов Canvas.drawText () просто не работает - PullRequest
7 голосов
/ 25 октября 2010

Привет всем: я пишу класс, который наследуется от TextView и переопределяет его метод onDraw(), но в этом методе мой вызов canvas.drawText(), похоже, не работает, код такой же, как и ниже:1003 *

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 ]

20 голосов
/ 07 декабря 2010

Ничего не рисуется, потому что текстовые координаты находятся слева внизу. Поскольку вы пытаетесь нарисовать на 0,0, он будет рисовать над экраном.

Попробуйте изменить последнюю строку на:

canvas.drawText(text, 0, 20, paint);
0 голосов
/ 27 ноября 2012

Отличные предложения, отличная работа, ребята.Хотя в следующий раз было бы неплохо, если бы вы спросили парня в комментарии или в чем-то еще, попробовал ли он совершенно очевидное, прежде чем публиковать его в качестве ответа.Ты действительно думаешь, что в тот момент, когда он добрался до точки, которая не работала, он просто пришел прямо к переполнению стека, не экспериментируя?не только ту часть, на которую можно ответить без особых знаний.

Я бы порекомендовал попробовать ваш вызов drawText на Canvas, который не входит в подкласс TextView, так как он не будет переопределен несколькими сотнями строккод в TextView, который управляет его состоянием рисования.

...