package com.example.test4spannablestringbuilder;
import android.app.Activity;
import android.graphics.Color;
import android.graphics.Typeface;
import android.graphics.drawable.Drawable;
import android.os.Bundle;
import android.text.Spannable;
import android.text.SpannableString;
import android.text.Spanned;
import android.text.style.BackgroundColorSpan;
import android.text.style.ForegroundColorSpan;
import android.text.style.ImageSpan;
import android.text.style.RelativeSizeSpan;
import android.text.style.ScaleXSpan;
import android.text.style.StrikethroughSpan;
import android.text.style.StyleSpan;
import android.text.style.SubscriptSpan;
import android.text.style.SuperscriptSpan;
import android.text.style.URLSpan;
import android.text.style.UnderlineSpan;
import android.view.Menu;
import android.widget.TextView;
public class MainActivity extends Activity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
TextView tv = (TextView) findViewById(R.id.text_view);
SpannableString ss = new SpannableString(
"��ɫ��绰б��ɾ������ɫ�»���ͼƬ:.��ɫ����1234567890abcdefghijklnopqrstuvwxyz");
// ����ɫ����ı�
ss.setSpan(new ForegroundColorSpan(Color.RED), 0, 2,
// setSpanʱ��Ҫָ���� flag,Spanned.SPAN_EXCLUSIVE_EXCLUSIVE(ǰ������).
Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);
// �ó����ӱ���ı�
ss.setSpan(new URLSpan("tel:10086"), 2, 5,
Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);
// ����ʽ����ı���б�壩
ss.setSpan(new StyleSpan(Typeface.BOLD_ITALIC), 5, 7,
Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);
// ��ɾ���߱���ı�
ss.setSpan(new StrikethroughSpan(), 7, 10,
Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);
// ���»��߱���ı�
ss.setSpan(new UnderlineSpan(), 10, 16,
Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);
// ����ɫ���
ss.setSpan(new ForegroundColorSpan(Color.GREEN), 10, 12,
Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);
// ��ȡDrawable��Դ
Drawable d = getResources().getDrawable(R.drawable.ic_launcher);
d.setBounds(0, 0, d.getIntrinsicWidth(), d.getIntrinsicHeight());
// ����ImageSpan
ImageSpan span = new ImageSpan(d, ImageSpan.ALIGN_BASELINE);
// ��ImageSpan�滻�ı�
ss.setSpan(span, 18, 19, Spannable.SPAN_INCLUSIVE_EXCLUSIVE);
// ����ɫ��������ı�
ss.setSpan(new BackgroundColorSpan(Color.BLUE), 19, 23,
Spannable.SPAN_EXCLUSIVE_EXCLUSIVE);
// ������x�����
ss.setSpan(new ScaleXSpan(3), 23, 29,
Spannable.SPAN_EXCLUSIVE_EXCLUSIVE);
// ���ϱ������
ss.setSpan(new SuperscriptSpan(), 29, 35,
Spannable.SPAN_EXCLUSIVE_EXCLUSIVE);
// ���±������
ss.setSpan(new SubscriptSpan(), 35, 38,
Spannable.SPAN_EXCLUSIVE_EXCLUSIVE);
// ����Դ�С�����
ss.setSpan(new RelativeSizeSpan(3), 38, 40,
Spannable.SPAN_EXCLUSIVE_EXCLUSIVE);
// many other
// TODO
// �ı�����
tv.setText(ss);
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu; this adds items to the action bar if it is present.
getMenuInflater().inflate(R.menu.main, menu);
return true;
}
}