2012-11-12 17 views

答えて

3

過去に書式設定されたテキストが必要な場合は、書式設定したhtmlファイルを作成してres/rawディレクトリに貼り付け、WebViewにロードしました。私は前に別のフォントでそれを試したことはありませんが、それがうまくいくかどうかは確かではありませんが、太字やイタリック体などが動作します。

14

あなたの質問のタイトルを読んだとき、私はあなたにその正確な記事へのリンクを与える用意ができました。私はスパンとSpannableStringを使って非常に強力であることを発見しました。代わりに、Html.fromHtml()で行うことができるテキストのHTML書式設定を使用することです。

しかし、それはドキュメントが簡単に読み込むため、HTMLタグは、サポートされているかを正確に明確ではありません。

このクラスは、表示可能な書式付きテキストにHTML文字列を処理します。いいえ、 すべてのHTMLタグがサポートされています。

したがって、良い解決策として、私は記事でSpannableStringというアプローチを使用します。このメソッドは、既存のものを拡張する独自のスパンクラスを作成することもできます(たとえば、テキストセクションに組み込みのないカスタムフォントを使用する場合など)。

+0

良い答え、SpannableStringはこれのための本当に強力なツールです。私はそのクラスからインスピレーションを得て、SpoonableStringをフードの下で使用するRichTextViewライブラリを作成しましたが、開発者の使用を簡素化しました:http://stackoverflow.com/a/36404986/3131147 – AdamMc331

6

これを処理する週末にライブラリを作成しましたが、私はそれをRichTextViewと呼びました。

ライブラリでは、テキストの太さ、太字、下線、イタリック、コンビネーションなどの書式設定や、色付け(テキストの色とハイライト表示)ができます。次回のリリースでは、カスタムフォントスパンなどを可能にする予定です。

が、それは簡単です使用するには、ちょうどあなたのGradleファイルに次の依存関係を追加します。

compile 'com.androidessence.lib:richtextview:1.0.1' 

を今、あなたは最初の4つの文字を太字にしたいとしましょう、あなたは、単に次の呼び出しを行うことができます。

myRichTextView.formatSpan(0, 4, RichTextView.FormatType.BOLD); 

end indexパラメータは包括的​​ではないので、(0 - > 4)と言って実際にはインデックス(0 - > 3)を強調していることに注意してください。

あなたは、両方の太字を行うと、下線、EnumSetの使用したい場合は、次の最新情報について

myRichTextView.formatSpan(0, 4, EnumSet.of(RichTextView.FormatType.BOLD, RichTextView.FormatType.UNDERLINE)); 

を、私はこの答えにそれがなるといつでも更新しようとしますが、GitHubのリポジトリは、上記のリンクを参照してください時代遅れの

+0

美しい!これは受け入れられた答えでなければなりません。 –

+0

これは正しいTristanです。 lol – Eenvincible

+0

他のソリューションよりもはるかに簡単な、素晴らしいlib。 – Mauker