Вопрос

Привет всем: я пишу класс, который наследует от 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);
}
Это было полезно?

Решение

Это не рисует ничего, потому что текстовые координаты левые левые. Так как вы пытаетесь нарисовать 0,0, он будет нарисовать над экраном.

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

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

Другие советы

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

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

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

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top