TextView SpannableStringで複合テキストを設定する
5287 ワード
1、Background ColorSpan背景色
SpannableString spanText = new SpannableString(" -- http://orgcent.com");
spanText.setSpan(new BackgroundColorSpan(Color.GREEN), 0, spanText.length(), Spannable.SPAN_INCLUSIVE_EXCLUSIVE);
mTVText.append("
");
mTVText.append(spanText);
2.Foreground ColorSpanテキスト色(前景色)spanText = new SpannableString(" -- http://orgcent.com");
spanText.setSpan(new ForegroundColorSpan(Color.BLUE), 6, spanText.length(), Spannable.SPAN_INCLUSIVE_EXCLUSIVE);
mTVText.append("
");
mTVText.append(spanText);
3.MaskFilterSpan修飾効果、例えばぼかし(BlurMaskFilter)、レリーフ(EmbosMaskFilter)spanText = new SpannableString("MaskFilterSpan -- http://orgcent.com");
int length = spanText.length();
// (BlurMaskFilter)
MaskFilterSpan maskFilterSpan = new MaskFilterSpan(new BlurMaskFilter(3, Blur.OUTER));
spanText.setSpan(maskFilterSpan, 0, length - 10, Spannable.
SPAN_INCLUSIVE_EXCLUSIVE);
// (EmbossMaskFilter)
maskFilterSpan = new MaskFilterSpan(new EmbossMaskFilter(new float[]{1,1,3}, 1.5f, 8, 3));
spanText.setSpan(maskFilterSpan, length - 10, length, Spannable.SPAN_INCLUSIVE_EXCLUSIVE);
mTVText.append("
");
mTVText.append(spanText);
4.ラスターイゼルスの効果spanText = new SpannableString("StrikethroughSpan");
spanText.setSpan(new StrikethroughSpan(), 0, 7, Spannable.
SPAN_INCLUSIVE_EXCLUSIVE);
mTVText.append("
");
mTVText.append(spanText);
5.StrikethroughSpan取り消し線(中線)spanText = new SpannableString("StrikethroughSpan");
spanText.setSpan(new StrikethroughSpan(), 0, 7, Spannable.SPAN_INCLUSIVE_EXCLUSIVE);
mTVText.append("
");
mTVText.append(spanText);
6.アンダライナーSpanアンダーラインspanText = new SpannableString("UnderlineSpan");
spanText.setSpan(new UnderlineSpan(), 0, spanText.length(), Spannable.SPAN_INCLUSIVE_EXCLUSIVE);
mTVText.append("
");
mTVText.append(spanText);
7.DynamicDrawable Span は、テキストベースまたはベースラインに づいて されます.DynamicDrawableSpan drawableSpan = new DynamicDrawableSpan(DynamicDrawableSpan.ALIGN_BASELINE) {
@Override
public Drawable getDrawable() {
Drawable d = getResources().getDrawable(R.drawable.ic_launcher);
d.setBounds(0, 0, 50, 50);
return d;
}
};
DynamicDrawableSpan drawableSpan2 = new DynamicDrawableSpan(DynamicDrawableSpan.ALIGN_BOTTOM) {
@Override
public Drawable getDrawable() {
Drawable d = getResources().getDrawable(R.drawable.ic_launcher);
d.setBounds(0, 0, 50, 50);
return d;
}
};
spanText.setSpan(drawableSpan, 3, 4, Spannable.SPAN_INCLUSIVE_EXCLUSIVE);
spanText.setSpan(drawableSpan2, 7, 8, Spannable.SPAN_INCLUSIVE_EXCLUSIVE);
mTVText.append("
");
mTVText.append(spanText);
8. の はベースラインに づいて され、 の はベースラインに づいて されます.spanText = new SpannableString("ImageSpan");
Drawable d = getResources().getDrawable(R.drawable.ic_launcher);
</strong>d.setBounds(0, 0, 50, 50);
spanText.setSpan(new ImageSpan(d), 3, 4, Spannable.SPAN_INCLUSIVE_EXCLUSIVE);
mTVText.append("
");
mTVText.append(spanText);
9.ScaleXSpan x によるスケーリングspanText = new SpannableString("ScaleXSpan -- ");
// proportion:
spanText.setSpan(new ScaleXSpan(3.8f), 3, 7, Spannable.SPAN_INCLUSIVE_EXCLUSIVE);
mTVText.append("
");
mTVText.append(spanText);
10.Subscript Spanのログアウト( が されます)spanText = new SpannableString("SubscriptSpan -- ");
spanText.setSpan(new SubscriptSpan(), 6, 7, Spannable.SPAN_INCLUSIVE_EXCLUSIVE);
mTVText.append("
");
mTVText.append(spanText);
11 SuperscriptSpan き( は されます)spanText = new SpannableString("SuperscriptSpan -- ");
spanText.setSpan(new SuperscriptSpan(), 6, 7, Spannable.SPAN_INCLUSIVE_EXCLUSIVE);
mTVText.append("
");
mTVText.append(spanText);
12 URLSパンテキストハイパーリンクspanText = new SpannableString("URLSpan -- ");
spanText.setSpan(new URLSpan("http://orgcent.com"), 10, spanText.length(), Spannable.SPAN_INCLUSIVE_EXCLUSIVE);
mTVText.append("
");
mTVText.append(spanText);
// URLSpan
mTVText.setMovementMethod(new LinkMovementMethod());