我们有一个渲染大量文本的 iOS 应用程序:http: //itunes.apple.com/br/app/biblia-sagrada/id370178518 ?mt=8
我们使用 CoreText 来呈现文本并让用户能够更改格式、字体大小和字体。
我们正在尝试将其移植到 Android,但我不确定 Android 中是否有 CoreText 的替代品。
我们有一个渲染大量文本的 iOS 应用程序:http: //itunes.apple.com/br/app/biblia-sagrada/id370178518 ?mt=8
我们使用 CoreText 来呈现文本并让用户能够更改格式、字体大小和字体。
我们正在尝试将其移植到 Android,但我不确定 Android 中是否有 CoreText 的替代品。
与 Android 中 iOS 的 CoreText 等效的是drawText
API、Canvas 类的一部分 Canvas.drawText()
、Canvas.drawPosText()
、 等。有关更多详细信息,请参阅Canvas 的javadoc。这些图形 API 在下面使用Skia。
这些图形 API 提供的功能与 iOS 中的功能不同,比如没有CTFramesetter
等价物可以帮助您布局文本和处理换行符。使用drawText
API,您一次只能绘制一条线,您必须自己处理换行符,这就像CTTypesetter
在 iOS 中使用一样。有关布局文本,请参阅Paint.breakText
和Paint.measureText
。
要更改字体大小和字体,您可以在对象中设置相关属性,该属性Paint
作为最后一个参数传递给drawText
API。
片段:
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.
TextView
可以通过可扩展的字符串处理“更改格式、字体大小和字体的能力”。请参阅android.text.style
包装以了解您可以应用的各种效果。
就“大量文本”而言,TextView
将ScrollView
.
如果需要,您可以随时回退到 using WebView
,它为您提供了呈现 HTML 的完整 WebKit 功能。