我们对iOS设备上呈现文本的大量的应用程序:http://itunes.apple.com/br/app/biblia-sagrada/id370178518?mt=8Android的相当于CoreText
我们使用CoreText呈现文本,并给用户更改格式,字体大小和字体的脸的能力。
我们正试图将它移植到Android,但我不确定在Android中是否有CoreText的替代品。
我们对iOS设备上呈现文本的大量的应用程序:http://itunes.apple.com/br/app/biblia-sagrada/id370178518?mt=8Android的相当于CoreText
我们使用CoreText呈现文本,并给用户更改格式,字体大小和字体的脸的能力。
我们正试图将它移植到Android,但我不确定在Android中是否有CoreText的替代品。
等效到iOS” CoreText在Android是drawText
的API,Canvas类,Canvas.drawText()
,Canvas.drawPosText()
的一部分,等等看到javadoc为画布更多细节。这些图形API在下面使用Skia。
这些图形API提供的功能与iOS中的功能不同,比如没有CTFramesetter
的等效功能,可帮助您为您排版文本和处理换行符。使用drawText
API时,您一次只能绘制一行,您必须自己处理换行符,就像在iOS中使用CTTypesetter
一样。有关布置文本,请参阅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);
注:在Android drawText
的API使用的坐标系是从left-top
角落。
TextView
可以通过可跨越的字符串来处理“改变格式,字体大小和字体的能力”。请参阅android.text.style
软件包以了解可应用的各种效果。
根据“大量文字”,将TextView
换成ScrollView
。
您可以始终使用WebView
,如果需要,它可为您提供完整的WebKit功能以呈现HTML。
在iOS上,CoreText会告诉您在特定框架上可见的文本的确切数量。这个功能非常强大,因为应用程序可以在ScrollView上放置多个框架,为文本分页。 TextView可以在Android上执行相同的操作吗? – javsmo 2012-04-22 19:09:38
@javsmo:不是我所知道的。我在Android上看到的唯一分页文本是电子书阅读器,它将使用HTML和“WebView”。 – CommonsWare 2012-04-22 19:17:35
@CommonsWare,不是真的,大多数电子书阅读器都使用canvas和drawText API,我曾经实现过一个电子书阅读器,事情可以通过drawText API进行更多的控制。 – neevek 2013-01-29 01:18:41