21

プログラムの「情報」を作成する必要があります。情報テキストをいくつかの色、スタイル、フォントなどで埋めたいと思います。

私はそれを達成する方法でこのリンクを見つけました。

これを行うための他の方法(より良いまたは簡単な方法)はありますか?

4

4 に答える 4

15

あなたの質問のタイトルを読んで、その正確な記事へのリンクを提供する準備ができていました. スパンを使用SpannableStringすると非常に強力であることがわかりました。別の方法は、テキストに HTML フォーマットを使用することです。これは、 Html.fromHtml()で実行できます。

ただし、ドキュメントには次のように書かれているだけなので、どの HTML タグがサポートされているかは明確ではありません。

このクラスは、HTML 文字列を表示可能なスタイル付きテキストに処理します。すべての HTML タグがサポートされているわけではありません。

したがって、適切な解決策として、私は間違いなくSpannableStringこの記事のアプローチを採用します。既存のスパン クラスを拡張する独自のスパン クラスを作成することもできるため、この方法は実際には非常に便利です (たとえば、組み込みではないカスタム フォントをテキストのセクションで使用する場合)。

于 2012-11-12T20:05:52.510 に答える
13

私は週末にこれを処理するライブラリを作成し、それを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 リポジトリを参照してください。

于 2016-04-04T14:08:34.603 に答える
5

過去に書式付きテキストが必要だったとき、書式付きの html ファイルを作成し、それを res/raw ディレクトリに貼り付けて、それを WebView にロードしました。以前に別のフォントで試したことがないので、うまくいくかどうかはわかりませんが、太字や斜体などはうまくいきます。

于 2012-11-12T20:04:38.820 に答える