2012-04-22 53 views

回答

5

等效到iOS” CoreText在Android是drawText的API,Canvas类,Canvas.drawText()Canvas.drawPosText()的一部分,等等看到javadoc为画布更多细节。这些图形API在下面使用Skia

这些图形API提供的功能与iOS中的功能不同,比如没有CTFramesetter的等效功能,可帮助您为您排版文本和处理换行符。使用drawText API时,您一次只能绘制一行,您必须自己处理换行符,就像在iOS中使用CTTypesetter一样。有关布置文本,请参阅Paint.breakTextPaint.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角落。

1

TextView可以通过可跨越的字符串来处理“改变格式,字体大小和字体的能力”。请参阅android.text.style软件包以了解可应用的各种效果。

根据“大量文字”,将TextView换成ScrollView

您可以始终使用WebView,如果需要,它可为您提供完整的WebKit功能以呈现HTML。

+1

在iOS上,CoreText会告诉您在特定框架上可见的文本的确切数量。这个功能非常强大,因为应用程序可以在ScrollView上放置多个框架,为文本分页。 TextView可以在Android上执行相同的操作吗? – javsmo 2012-04-22 19:09:38

+0

@javsmo:不是我所知道的。我在Android上看到的唯一分页文本是电子书阅读器,它将使用HTML和“WebView”。 – CommonsWare 2012-04-22 19:17:35

+1

@CommonsWare,不是真的,大多数电子书阅读器都使用canvas和drawText API,我曾经实现过一个电子书阅读器,事情可以通过drawText API进行更多的控制。 – neevek 2013-01-29 01:18:41