Почему мой вызов Canvas.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,0, он будет рисовать над экраном.

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

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

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

У меня есть альтернативное предположение, что достаточно безумно основано на всем вопросе, а не только на той части, на которую можно ответить без особого реального знания.

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

Другие вопросы по тегам