我們對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