
1 TextView tv= (TextView) findViewById(R.id.textview_z);
String text="一段可以被点击点击的文字,文字可以变成图片";
SpannableString spannableString=new SpannableString(text);
ImageSpan imagespan=new ImageSpan(MainActivity.this,R.mipmap.fu);
//设置5-7之间的字符为图片
spannableString.setSpan(imagespan,5,7, Spannable.SPAN_EXCLUSIVE_EXCLUSIVE);
//设置8-9之间的字符可以被点击
ClickableSpan click=new ClickableSpan() {
@Override
public void onClick(View widget) {
Toast.makeText(MainActivity.this,"文字被点击了",Toast.LENGTH_SHORT).show();
}
};
spannableString.setSpan(click,8,9,Spannable.SPAN_EXCLUSIVE_EXCLUSIVE);
tv.setText(spannableString);
//如果设置了文字的点击事件,就必须设置这个方法,文本的点击处理方法
tv.setMovementMethod(new LinkMovementMethod());
//edittext 也可以用spannableString
EditText edittext= (EditText) findViewById(R.id.edittext_z);
String htmlString = "<html>\n" +
" <head></head>\n" +
" <body>\n" +
" 哈哈哈\n" +
" <a href=\"http://m.oschina.net/u/993896\" class=\"referer\">@WoshiWo</a> 我点你了噢 \n" +
" </body>\n" +
"</html>";
//spanned 是 接口继承CharSequence ,把String 变成对象Html
final Spanned html = Html.fromHtml(htmlString);
SpannableString spannableString1=new SpannableString(html);
ImageSpan what1=new ImageSpan(MainActivity.this,R.mipmap.fu);
spannableString1.setSpan(what1,0,1,Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);
edittext.setText(spannableString1);
edittext.setMovementMethod(new LinkMovementMethod());
//spannableString.setSpan(what,5,7, Spannable.SPAN_EXCLUSIVE_EXCLUSIVE);
what参数可以设置下面的属性,来更改SpannableString的样式
