Por que minha invoque de Canvas.DrawText () simplesmente não funciona
-
26-09-2019 - |
Pergunta
Olá a todos: estou escrevendo uma aula que herda do TextView e substitui seu onDraw()
método, mas no método, minha invasão de canvas.drawText()
Não parece funcionar, o código como abaixo:
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);
}
Solução
Não está desenhando nada porque as coordenadas de texto estão no canto inferior esquerdo. Como você está tentando desenhar em 0,0, ele desenhará acima da tela.
Tente mudar a última linha para:
canvas.drawText(text, 0, 20, paint);
Outras dicas
Excelentes sugestões ao redor, ótimo trabalho, pessoal. Da próxima vez, seria bom se você perguntar ao cara em um comentário ou algo assim, se ele já tentou ou não o óbvio antes de publicá -lo como uma resposta. Você realmente acha que, no segundo em que ele chegou a um ponto que não estava funcionando, ele acabou de empilhar o transbordamento sem experimentar?
Eu tenho uma sugestão alternativa, de que loucamente se baseia em toda a pergunta e não apenas na parte que poderia ser respondida sem muito conhecimento real.
Eu recomendaria experimentar sua chamada de drawtext em uma tela que não está em uma subclasse TextView, pois dessa maneira não será substituída pelas várias centenas de linhas de código no TextView que gerenciam seu estado desenhado.