Por qué mi invocación de Canvas.DrawText () simplemente no funciona
-
26-09-2019 - |
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);
}
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.