2012-04-22 252 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