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);
}
Foi útil?

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.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top