Das entspricht iOS‘Core in Android ist der drawText
APIs, einen Teil der Canvas-Klasse, Canvas.drawText()
, Canvas.drawPosText()
usw. javadoc für Leinwand siehe für weitere Einzelheiten. Diese Grafik-APIs verwenden Skia darunter.
Die Funktionalitäten, die diese Grafik-APIs bieten, sind nicht die gleichen wie in iOS, sagen wir, es gibt kein CTFramesetter
Äquivalent, das Ihnen hilft, Text zu formatieren und Zeilenumbrüche zu erledigen. Mit den drawText
APIs können Sie nur eine Zeile auf einmal zeichnen, müssen Sie Zeilenumbrüche selbst behandeln, Es ist wie CTTypesetter
in iOS verwenden. Zum Auslegen von Text siehe Paint.breakText
und Paint.measureText
.
Für Schriftgröße & Schriftart ändern, können Sie ähnliche Attribute im Paint
Objekt festgelegt, die als letzte Parameter an die drawText
APIs übergeben wird.
Schnipsel:
Paint paint = new Paint(Paint.ANTI_ALIAS_FLAG);
paint.setTextSize(14);
String text = "Hello world!";
canvas.drawText(text, 0, 100, paint);
Hinweis: Das System in den APIs Android drawText
verwendet Koordinate von left-top
Ecke.
In iOS gibt CoreText die genaue Menge an Text an, die in einem bestimmten Frame angezeigt werden würde. Diese Funktion ist sehr nützlich, da die Anwendung mehrere Frames in einer ScrollView platziert und den Text paginieren kann. Könnte TextView das gleiche für Android tun? – javsmo
@javsmo: Nicht, dass ich mir dessen bewusst bin. Der einzige paginierte Text, den ich auf Android gesehen habe, ist mit Ebook-Readern, die HTML und 'WebView' verwenden. – CommonsWare
@CommonsWare, nicht wirklich, die meisten Ebook-Reader verwenden Canvas und die DrawText-APIs, ich habe einmal einen Ebook-Reader implementiert, die Dinge wären viel kontrollierbar mit den DrawText-APIs. – neevek