プログラムの「情報」を作成する必要があります。情報テキストをいくつかの色、スタイル、フォントなどで埋めたいと思います。
私はそれを達成する方法でこのリンクを見つけました。
これを行うための他の方法(より良いまたは簡単な方法)はありますか?
あなたの質問のタイトルを読んで、その正確な記事へのリンクを提供する準備ができていました. スパンを使用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 にロードしました。以前に別のフォントで試したことがないので、うまくいくかどうかはわかりませんが、太字や斜体などはうまくいきます。