6

我们有一个渲染大量文本的 iOS 应用程序:http: //itunes.apple.com/br/app/biblia-sagrada/id370178518 ?mt=8

我们使用 CoreText 来呈现文本并让用户能够更改格式、字体大小和字体。

我们正在尝试将其移植到 Android,但我不确定 Android 中是否有 CoreText 的替代品。

4

2 回答 2

6

与 Android 中 iOS 的 CoreText 等效的是drawTextAPI、Canvas 类的一部分 Canvas.drawText()Canvas.drawPosText()、 等。有关更多详细信息,请参阅Canvas 的javadoc。这些图形 API 在下面使用Skia

这些图形 API 提供的功能与 iOS 中的功能不同,比如没有CTFramesetter等价物可以帮助您布局文本和处理换行符。使用drawTextAPI,您一次只能绘制一条线,您必须自己处理换行符,这就像CTTypesetter在 iOS 中使用一样。有关布局文本,请参阅Paint.breakTextPaint.measureText

要更改字体大小和字体,您可以在对象中设置相关属性,该属性Paint作为最后一个参数传递给drawTextAPI。

片段:

Paint paint = new Paint(Paint.ANTI_ALIAS_FLAG);
paint.setTextSize(14);
String text = "Hello world!";
canvas.drawText(text, 0, 100, paint);

Note: The coordinate system used in the Android drawText APIs is from left-top corner.

于 2012-05-08T01:41:03.267 回答
1

TextView可以通过可扩展的字符串处理“更改格式、字体大小和字体的能力”。请参阅android.text.style包装以了解您可以应用的各种效果。

就“大量文本”而言,TextViewScrollView.

如果需要,您可以随时回退到 using WebView,它为您提供了呈现 HTML 的完整 WebKit 功能。

于 2012-04-22T18:46:17.920 回答