Perché il mio invocazione di canvas.DrawText () non funziona
-
26-09-2019 - |
Domanda
Ciao a tutti: sto scrivendo una classe che eredita da TextView e sovrascriva la sua onDraw()
Metodo, ma nel metodo, il mio invocato di canvas.drawText()
Non sembra funzionare, il codice proprio come sotto:
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);
}
Soluzione
Non sta disegnando nulla perché le coordinate del testo sono in basso a sinistra. Dal momento che stai cercando di disegnare su 0,0, disegnerà sopra lo schermo.
Prova a cambiare l'ultima riga in:
canvas.drawText(text, 0, 20, paint);
Altri suggerimenti
Suggerimenti eccellenti dappertutto, ottimo lavoro ragazzi davvero. La prossima volta, però, sarebbe bello se chiedi al ragazzo in un commento o qualcosa del genere se ha provato o meno il completamente ovvio prima di pubblicarlo come risposta. Pensi davvero che il momento in cui è arrivato a un punto che non funzionava, è appena arrivato per impilare il trabocco senza sperimentare?
Ho un suggerimento alternativo, che abbastanza follemente si basa sull'intera domanda e non solo sulla parte a cui si potrebbe rispondere senza molta conoscenza reale.
Consiglierei di provare la tua chiamata DrawText su una tela che non si trova in una sottoclasse di TextView in quanto in questo modo non verrà sovrascritto dalle diverse centinaia di righe di codice in TextView che gestiscono il suo stato disegnato.