プログラムの「情報」を作成する必要があります。情報テキストをいくつかの色、スタイル、フォントなどで埋めたいと思います。
私はそれを達成する方法でこのリンクを見つけました。
これを行うための他の方法(より良いまたは簡単な方法)はありますか?
あなたの質問のタイトルを読んで、その正確な記事へのリンクを提供する準備ができていました. スパンを使用SpannableStringすると非常に強力であることがわかりました。別の方法は、テキストに HTML フォーマットを使用することです。これは、 Html.fromHtml()で実行できます。
ただし、ドキュメントには次のように書かれているだけなので、どの HTML タグがサポートされているかは明確ではありません。
このクラスは、HTML 文字列を表示可能なスタイル付きテキストに処理します。すべての HTML タグがサポートされているわけではありません。
したがって、適切な解決策として、私は間違いなくSpannableStringこの記事のアプローチを採用します。既存のスパン クラスを拡張する独自のスパン クラスを作成することもできるため、この方法は実際には非常に便利です (たとえば、組み込みではないカスタム フォントをテキストのセクションで使用する場合)。
私は週末にこれを処理するライブラリを作成し、それをRichTextViewと呼びました。
このライブラリを使用すると、一連のテキストを書式設定 (太字、下線、斜体、組み合わせなど) したり、色付け (テキストの色と強調表示) を行うことができます。次のリリースでは、カスタム フォント スパンなども許可する予定です。
使い方は簡単で、次の依存関係を gradle ファイルに追加するだけです。
compile 'com.androidessence.lib:richtextview:1.0.1'
ここで、最初の 4 文字を太字にしたいとしましょう。次の呼び出しを行うだけです。
myRichTextView.formatSpan(0, 4, RichTextView.FormatType.BOLD);
終了インデックス パラメータは包括的ではないことに注意してください。したがって、(0 -> 4) と言うと、実際にはインデックス (0 -> 3) を太字にしています。
太字と下線の両方を使用する場合は、EnumSet を使用します。
myRichTextView.formatSpan(0, 4, EnumSet.of(RichTextView.FormatType.BOLD, RichTextView.FormatType.UNDERLINE));
最新の情報については、上記のリンクにある Github リポジトリを参照してください。
過去に書式付きテキストが必要だったとき、書式付きの html ファイルを作成し、それを res/raw ディレクトリに貼り付けて、それを WebView にロードしました。以前に別のフォントで試したことがないので、うまくいくかどうかはわかりませんが、太字や斜体などはうまくいきます。