膨大な量のテキストをレンダリングする iOS 用アプリがあります: http://itunes.apple.com/br/app/biblia-sagrada/id370178518?mt=8
CoreText を使用してテキストをレンダリングし、ユーザーが書式設定、フォント サイズ、およびフォント フェイスを変更できるようにします。
私たちはそれを Android に移植しようとしていますが、Android で CoreText に代わるものがあるかどうかはわかりません。
膨大な量のテキストをレンダリングする iOS 用アプリがあります: http://itunes.apple.com/br/app/biblia-sagrada/id370178518?mt=8
CoreText を使用してテキストをレンダリングし、ユーザーが書式設定、フォント サイズ、およびフォント フェイスを変更できるようにします。
私たちはそれを Android に移植しようとしていますが、Android で CoreText に代わるものがあるかどうかはわかりません。
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 drawText
APIで使用される座標系は、left-top
隅からのものです。
TextView
スパン可能な文字列を介して、「フォーマット、フォントサイズ、およびフォントフェイスを変更する機能」を処理できます。android.text.style
適用できるさまざまな効果については、パッケージを参照してください。
「膨大な量のテキスト」に関しては、 を で囲みTextView
ますScrollView
。
WebView
必要に応じて、HTML をレンダリングするための完全な WebKit 機能を提供する の使用にいつでもフォールバックできます。