El equivalente a CoreText IOS' en Android es el drawText
API, parte de la clase Canvas, Canvas.drawText()
, Canvas.drawPosText()
, etc. ver javadoc de lona para más detalle. Estas API de gráficos usan Skia debajo.
Las funcionalidades que ofrecen estas API de gráficos no son las mismas que en iOS, digamos que no hay equivalente CTFramesetter
que le ayude a diseñar texto y gestionar los saltos de línea por usted. Con las API drawText
, solo puede dibujar una línea a la vez, tendrá que manejar saltos de línea usted mismo, es como usar CTTypesetter
en iOS. Para el diseño de texto, vea Paint.breakText
y Paint.measureText
.
Para cambiar el tamaño de fuente & cara de fuente, puede establecer atributos relacionados en el objeto Paint
, que se pasa como el último parámetro a las API drawText
.
Fragmento:
Paint paint = new Paint(Paint.ANTI_ALIAS_FLAG);
paint.setTextSize(14);
String text = "Hello world!";
canvas.drawText(text, 0, 100, paint);
Nota: El sistema de coordenadas utilizado en el Android drawText
API es de left-top
esquina.
En iOS, CoreText indica la cantidad exacta de texto que sería visible en un marco determinado. Esta característica es muy, ya que la aplicación puede colocar varios marcos colocados en un ScrollView, paginando el texto. ¿Podría TextView hacer lo mismo en Android? – javsmo
@javsmo: No es que yo sepa. El único texto paginado que he visto en Android es con lectores de libros electrónicos, que usarán HTML y 'WebView'. – CommonsWare
@CommonsWare, en realidad, la mayoría de los lectores de libros electrónicos no usan Canvas y las API de drawText, una vez que implementé un lector de libros electrónicos, las cosas serían mucho más controlables con las API de drawText. – neevek