2013-06-08 8 views
8

にどのように私はこのような何かを実装します。 TextViewの背景色を設定してもジョブは実行されません。のTextViewのみテキスト自体

私はそれがspannableで可能であるべきだと思いますが、私はどのようにわかりません。

HTMLでは、私はそれを行うだろう:

<html> 
<body> 
     <span style="background:#CCCCCC;">first line <br /> second long line </span> 
</body> 
</html> 

しかし、私はAndroid上でそれを行う方法がわかりません。 最後のオプションは、テキストを2つのテキストビューに分割し、各textviewsの背景色と/ heightをwrap_contentに設定することです。単語のテキストの長さ/数を動的にすることができるのでしかし、私はより良い方法:)

このような

答えて

12

何かが仕事をする必要がありますが存在しなければならないなど、各単語の長さを計算する必要が

String myString = "first line\nsecond long line"; 
Spannable spanna = new SpannableString(myString); 
spanna.setSpan(new BackgroundColorSpan(0xFFCCCCCC),0, myString.length(), Spannable.SPAN_EXCLUSIVE_EXCLUSIVE);   
myTextView.setText(spanna); 

あなたがhtmlでそれを保つのが好きなら、WebViewを使用し、あなたのhtmlをそこにロードすることができます、スタイリングはcssでより簡単になるはずです

+1

これはまさに私が探していたものです!ありがとう! BackgroundColorSpanに何らかのパディングを追加する方法はありますか? – sockeqwe

+0

申し訳ありません私はspannable上に実際のパディングを持つことが可能かどうか分かりませんが、私が把握できる唯一のものはスペースで文字列を拡大することです – lelloman

+0

ええ、空白を追加することは私の現在の解決策です:エレガントなソリューションですが、それは仕事です!どうもありがとうございました! – sockeqwe

関連する問題