6

膨大な量のテキストをレンダリングする iOS 用アプリがあります: http://itunes.apple.com/br/app/biblia-sagrada/id370178518?mt=8

CoreText を使用してテキストをレンダリングし、ユーザーが書式設定、フォント サイズ、およびフォント フェイスを変更できるようにします。

私たちはそれを Android に移植しようとしていますが、Android で CoreText に代わるものがあるかどうかはわかりません。

4

2 に答える 2

6

AndroidでのiOSのCoreTextに相当するのdrawTextは、Canvasクラスの一部であるAPI Canvas.drawText()、、Canvas.drawPosText()などです。詳細については、Canvasのjavadocを参照してください。これらのグラフィックAPIは、その下でSkiaを使用します。

これらのグラフィックAPIが提供する機能は、iOSの機能と同じではありません。たとえば、CTFramesetterテキストのレイアウトや改行の処理に役立つ同等の機能はありません。APIを使用するdrawTextと、一度に1本の線しか描画できず、改行を自分で処理する必要があります。これはCTTypesetter、iOSで使用するのと同じです。テキストのレイアウトについては、およびを参照Paint.breakTextしてくださいPaint.measureText

フォントサイズとフォントフェースを変更するために、オブジェクトに関連する属性を設定できます。これは、 APIPaintに最後のパラメーターとして渡されます。drawText

スニペット:

Paint paint = new Paint(Paint.ANTI_ALIAS_FLAG);
paint.setTextSize(14);
String text = "Hello world!";
canvas.drawText(text, 0, 100, paint);

注:Android drawTextAPIで使用される座標系は、left-top隅からのものです。

于 2012-05-08T01:41:03.267 に答える
1

TextViewスパン可能な文字列を介して、「フォーマット、フォントサイズ、およびフォントフェイスを変更する機能」を処理できます。android.text.style適用できるさまざまな効果については、パッケージを参照してください。

「膨大な量のテキスト」に関しては、 を で囲みTextViewますScrollView

WebView必要に応じて、HTML をレンダリングするための完全な WebKit 機能を提供する の使用にいつでもフォールバックできます。

于 2012-04-22T18:46:17.920 に答える