2017-08-05 3 views
0

私はいくつかのコードスニペットで構成されるアプリケーションを書いています。Androidでコードスニペットを強調する方法は?

通常の方法でTextViewに表示することができますが、私は "main"、 "int"、 "class"、 "return"などいくつかのキーワードを強調したいと思います。 webviewに読み込まれるhtmlやcssを使って行うことができますが、レンダリングが遅くなるなどいくつかの欠点があり、ユーザーエクスペリエンスが悪くなります。

ソリューションにアプローチするより良い方法はありますか? それは私にいくつかのコード例を与えるために素晴らしいことだ...

おかげ

+0

'WebView'のソースコードです。 – CommonsWare

+0

本当ですか? TextViewのようなネイティブウィジェットでテストするだけです。 は時々のWebViewが空白の取得以外に ...のTextViewとWebViewのロードいくつかのテキストとアップとレンダリング時間を比較し、両方の、あなたのParentLayoutは、2つのウィジェットで構成言います! –

+0

"確かですか?" - 私が[私の本](https://commonsware.com/Android)をAPKとして数年間出版していること、そして私の章で書式化されたソースコードを使用し、それらの章が 'WebView'に表示されていることを考えるとウィジェット、はい、私はそれが動作することを確信しています。 – CommonsWare

答えて

0

使用SpannableString:

SpannableString string = new SpannableString("Your text that has to be highlighted"); 
string.setSpan(new BackgroundColorSpan(Color.YELLOW), 0, 10, 0); 
textView.setText(string); 

BackgroundColorSpanは、背景色を変更します。 ForegroundColorSpanもチェックしてください。

またはHTMLタグを受け入れるHtml.fromHtmlを使用します。それは、文字列を解析する必要として

String text1 = "Start your text "; 
String text2 = "<font color='#EE0000'>and it is now red</font>"; 
textView.setText(Html.fromHtml(text1 + text2)); 

のHTML方法はSpannableStringより少し遅いかもしれません。私は、フォーマットの表示に問題がなかった - 「私はそれが最高のWebViewするロードHTMLとCSSを使用して行うことができますが、それは悪いユーザーエクスペリエンスを作るので、それは遅いレンダリングのようないくつかの欠点があります考え出した多くの時間後に」

+0

私のコードスニペットが100行で構成されていればどうなりますか? テンプレートを自動的に作成する方法はありますか? –

+0

強調表示する必要があるテキストの開始インデックスと終了インデックスを指定する必要があります。 – Bob

+0

はい、私の場合、私は約100のコードスニペットを持っていますが、これは手作業で設定するのには面倒な作業です。 と同じCSSタグ –

関連する問題