2012-04-22 8 views

Respuesta

5

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.

1

TextView puede manejar "la capacidad de cambiar el formato, el tamaño de fuente y la fuente de la fuente", a través de cadenas que se pueden abrir. Consulte el paquete android.text.style para conocer los diversos efectos que puede aplicar.

En términos de "enormes cantidades de texto", ajuste el TextView en un ScrollView.

Siempre puede recurrir al uso de WebView, que le ofrece capacidades completas de WebKit para procesar HTML, si es necesario.

+1

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

+0

@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

+1

@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