Frage

Hallo zusammen: Ich schreibe eine Klasse, die von TextView erbt und seine überschreibt onDraw() Methode, aber in der Methode mein Aufruf von canvas.drawText() Es scheint nicht zu funktionieren, der Code wie unten:

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);
}
War es hilfreich?

Lösung

Es zeichnet nichts, weil die Textkoordinaten unten links sind. Da Sie versuchen, auf 0,0 zu zeichnen, zeichnet es über dem Bildschirm.

Versuchen Sie, die letzte Zeile zu ändern auf:

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

Andere Tipps

Hervorragende Vorschläge rundum, tolle Jobs wirklich. Das nächste Mal wäre es schön, wenn Sie den Kerl in einem Kommentar fragen oder so, ob er das völlig offensichtliche Versuch ausprobiert hat, bevor er ihn als Antwort veröffentlichen. Glaubst du wirklich, dass er, als er zu einem Punkt erreicht wurde, der nicht funktioniert hat, gerade direkt zum Stapel überlaufen, ohne zu experimentieren?

Ich habe einen alternativen Vorschlag, dass verrückt genug auf der gesamten Frage basiert und nicht nur auf dem Teil, der ohne viel tatsächliche Wissen beantwortet werden könnte.

Ich würde empfehlen, Ihren DrawText -Aufruf auf einer Leinwand auszuprobieren, die sich nicht in einer Textview -Unterklasse befindet, da er nicht von den mehreren hundert Codezeilen in TextView überschrieben wird, die den zeichnbaren Zustand verwalten.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top