Pregunta

Hola a todos: estoy escribiendo una clase que herede de TextView y anule su onDraw() método, pero en el método, mi invocación de canvas.drawText() no parece funcionar, el código como a continuación:

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

Solución

No está dibujando nada porque las coordenadas de texto son inferior a la izquierda. Como estás tratando de dibujar en 0,0, se dibujará por encima de la pantalla.

Intente cambiar la última línea a:

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

Otros consejos

Excelentes sugerencias en general, gran trabajo, chicos, realmente. La próxima vez, sería bueno si le preguntas al tipo en un comentario o algo si ha intentado o no completamente obvio antes de publicarlo como respuesta. ¿Realmente crees que el segundo que llegó a un punto que no estaba funcionando, simplemente llegó directamente al desbordamiento de pila sin experimentar?

Tengo una sugerencia alternativa, esa locura se basa en toda la pregunta y no solo en la parte que podría responderse sin mucho conocimiento real.

Recomendaría probar su llamada DrawText en un lienzo que no está en una subclase TextView, ya que de esa manera no será anulada por los varios cientos de líneas de código en TextView que administran su estado dibujable.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top