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);
}
È stato utile?

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.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top