2016-04-01 11 views
-1

Ich baue eine Zeichnungs-App in Android und ich bin dabei fest; Wenn die zu groß ist, zeichnete es außerhalb der Canvas Breite, das ist jetzt gelöst, aber das Problem ist, wenn der Text aus der Leinwand Höhe geht, wie kann ich die gesamte Texthöhe berechnen und wenn es erlischt, verschieben Sie es nach oben so kann es in den Bildschirm passen?Wie verschiebe ich den gezeichneten Text, wenn er in Android aus der Leinwandhöhe herauskommt?

Ich habe bereits mit zwei Leinwand versucht, und auf der zweiten Leinwand so zeichnen, wenn es erlischt, ich benutze nur canvas.translate (x, y), aber immer noch nicht funktioniert.

enter image description here

Antwort

0

Android API hat den Satz von Layout der Klassen (Paket android.text), dass die Wiedergabe von Text implementieren.

Beispiel:

int maxWitdh; // mam witdh of text 
StaticLayout layout = new StaticLayout(text, mPaint, maxWidth, Alignment.ALIGN_NORMAL, 1, 0, true); 

int height = layout.getHeight(); 

layout.draw(canvas); 
+0

Nun, ich habe es versucht und es wurde besser, wenn der Text aus der Bildschirmbreite geht, aber immer noch nicht mein Höhe Problem lösen: /, Text geht immer noch aus der Bildschirmhöhe. – Cath

0

figured it out, mit dem StaticLayout i die Höhe des gesamten Textes und verfügt mit der Höhe des Bildschirms verglichen.

if (layoutHeight > height - coordinateY){ 
    secondCanvas.translate(getCoordX(), height-layoutHeight); 
} 

Jetzt geht es nie aus der Höhe.