Почему мой призвание Canvas.DrawText () просто не работает
-
26-09-2019 - |
Вопрос
Привет всем: я пишу класс, который наследует от 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, который управляет его нанесением.