我们有一个iOS应用程序,可以呈现大量文本:http://itunes.apple.com/br/app/biblia-sagrada/id370178518?mt=8
我们使用CoreText渲染文本,并让用户能够更改格式,字体大小和字体。
我们正在尝试将其移植到Android,但我不确定Android中是否有替代CoreText。
答案 0 :(得分:5)
Android中的iOS'CoreText相当于drawText
API,Canvas类的一部分,Canvas.drawText()
,Canvas.drawPosText()
等。有关详情,请参阅javadoc for Canvas详情。这些图形API使用下面的Skia。
这些图形API提供的功能与iOS中的功能不同,比如没有CTFramesetter
等效功能可以帮助您布局文本和处理换行符。使用drawText
API,您一次只能绘制一行,您必须自己处理换行符,就像在iOS中使用CTTypesetter
一样。有关布局文字的信息,请参阅Paint.breakText
和Paint.measureText
。
更改字体大小& font face,您可以在Paint
对象中设置相关属性,该对象作为最后一个参数传递给drawText
API。
段:
Paint paint = new Paint(Paint.ANTI_ALIAS_FLAG);
paint.setTextSize(14);
String text = "Hello world!";
canvas.drawText(text, 0, 100, paint);
注意:Android drawText
API中使用的坐标系来自left-top
角。
答案 1 :(得分:1)
TextView
可以通过spannable字符串处理“更改格式,字体大小和字体的能力”。有关您可以应用的各种效果,请参阅android.text.style
包。
就“大量文字”而言,将TextView
包裹在ScrollView
。
您可以随时使用WebView
,如果需要,它可以提供完整的WebKit功能来呈现HTML。