文本操作类SpannableString的使用
来源:互联网 发布:日语汉字注音软件 编辑:程序博客网 时间:2024/06/03 23:50
今天来看下textview到底有多强,直接上代码:
布局的话很简单,就是垂直线性布局里面放了9个textview,这里我就不放出来了
public classMainActivityextendsAppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
TextView textView = (TextView) findViewById(R.id.tv1);
TextView textView2 = (TextView) findViewById(R.id.tv2);
TextView textView3 = (TextView) findViewById(R.id.tv3);
TextView textView4 = (TextView) findViewById(R.id.tv4);
TextView textView5 = (TextView) findViewById(R.id.tv5);
TextView textView6 = (TextView) findViewById(R.id.tv6);
TextView textView7 = (TextView) findViewById(R.id.tv7);
TextView textView8 = (TextView) findViewById(R.id.tv8);
TextView textView9 = (TextView) findViewById(R.id.tv9);
TextView textView10 = (TextView) findViewById(R.id.tv10);
//分别设置颜色
SpannableString spannableString = newSpannableString("lebron james");
spannableString.setSpan(newForegroundColorSpan(Color.RED),0,6,Spanned.SPAN_INCLUSIVE_EXCLUSIVE);
spannableString.setSpan(newForegroundColorSpan(Color.BLUE),7,12,Spanned.SPAN_EXCLUSIVE_INCLUSIVE);
textView.append(spannableString);
//分别设置点击事件
SpannableString spannableString1 = newSpannableString("kobe james");
spannableString1.setSpan(newClickableSpan() {
@Override
public void onClick(View widget) {
Toast.makeText(MainActivity.this,"kobe",Toast.LENGTH_SHORT).show();
}
},0,4,Spanned.SPAN_INCLUSIVE_EXCLUSIVE);
spannableString1.setSpan(newClickableSpan() {
@Override
public void onClick(View widget) {
Toast.makeText(MainActivity.this,"james",Toast.LENGTH_SHORT).show();
}
},5,10,Spanned.SPAN_INCLUSIVE_EXCLUSIVE);
textView2.append(spannableString1);
//设置textview可点击
textView2.setMovementMethod(LinkMovementMethod.getInstance());
//分别设置URL
SpannableString spannableString2 = newSpannableString("百度,网易");
spannableString2.setSpan(newURLSpan("http://www.baidu.com"),0,2,Spanned.SPAN_EXCLUSIVE_INCLUSIVE);
spannableString2.setSpan(newURLSpan("http://www.baidu.com"),3,spannableString2.length(),Spanned.SPAN_EXCLUSIVE_INCLUSIVE);
textView3.append(spannableString2);
//设置textview可点击
textView3.setMovementMethod(LinkMovementMethod.getInstance());
//设置删除线
SpannableString spannableString3 = newSpannableString("删除线");
spannableString3.setSpan(newStrikethroughSpan(),0,spannableString3.length(),Spanned.SPAN_EXCLUSIVE_INCLUSIVE);
textView4.append(spannableString3);
//设置下标
SpannableString spannableString4 = newSpannableString("(x1+x2)2=x12+x22+2*x1x2");
spannableString4.setSpan(newSubscriptSpan(),2,3,Spanned.SPAN_EXCLUSIVE_INCLUSIVE);
spannableString4.setSpan(newSubscriptSpan(),5,6,Spanned.SPAN_EXCLUSIVE_INCLUSIVE);
spannableString4.setSpan(newSubscriptSpan(),10,11,Spanned.SPAN_EXCLUSIVE_INCLUSIVE);
spannableString4.setSpan(newSubscriptSpan(),14,15,Spanned.SPAN_EXCLUSIVE_INCLUSIVE);
spannableString4.setSpan(newSubscriptSpan(),20,21,Spanned.SPAN_EXCLUSIVE_INCLUSIVE);
spannableString4.setSpan(newSubscriptSpan(),22,23,Spanned.SPAN_EXCLUSIVE_INCLUSIVE);
//设置上标
spannableString4.setSpan(newSuperscriptSpan(),7,8,Spanned.SPAN_EXCLUSIVE_INCLUSIVE);
spannableString4.setSpan(newSuperscriptSpan(),11,12,Spanned.SPAN_EXCLUSIVE_INCLUSIVE);
spannableString4.setSpan(newSuperscriptSpan(),15,16,Spanned.SPAN_EXCLUSIVE_INCLUSIVE);
textView5.append(spannableString4);
//设置下滑线
SpannableString spannableString5 = newSpannableString("下划线");
spannableString5.setSpan(newUnderlineSpan(),0,spannableString5.length(),Spanned.SPAN_EXCLUSIVE_INCLUSIVE);
textView6.append(spannableString5);
//设置基于X轴的缩放
SpannableString spannableString6 = newSpannableString("基于X轴的缩放");
spannableString6.setSpan(newScaleXSpan(4),0,spannableString6.length(),Spanned.SPAN_EXCLUSIVE_INCLUSIVE);
textView7.append(spannableString6);
//设置各种点击事件
SpannableString spannableString7 = newSpannableString("打电话,发短信,发邮件,上网");
spannableString7.setSpan(newURLSpan("tel:13515135666"),0,3,Spanned.SPAN_EXCLUSIVE_INCLUSIVE);
spannableString7.setSpan(newURLSpan("smsto:13515135666"),4,7,Spanned.SPAN_EXCLUSIVE_INCLUSIVE);
spannableString7.setSpan(newURLSpan("mailto:13515135666@qq.com"),8,11,Spanned.SPAN_EXCLUSIVE_INCLUSIVE);
spannableString7.setSpan(newURLSpan("http://lol.qq.com/"),12,spannableString7.length(),Spanned.SPAN_EXCLUSIVE_INCLUSIVE);
textView8.append(spannableString7);
textView8.setMovementMethod(LinkMovementMethod.getInstance());
//设置图片
SpannableString spannableString8 = newSpannableString("这是一张图片哈哈哈");
spannableString8.setSpan(newDynamicDrawableSpan() {
@Override
publicDrawablegetDrawable() {
Drawable drawable = getResources().getDrawable(R.mipmap.ic_launcher);
drawable.setBounds(0,0,100,100);
returndrawable;
}
},5,spannableString8.length(),Spanned.SPAN_EXCLUSIVE_INCLUSIVE);
textView9.append(spannableString8);
}
}
阅读全文
0 0
- 文本操作类SpannableString的使用
- Android 富文本 SpannableString的使用
- SpannableString文本类详解
- Android TextView使用SpannableString设置复合文本的方法
- 【android】SpannableString详解及使用SpannableString设置复合文本
- 在TextView使用SpannableString设置复合文本
- TextView使用SpannableString设置复合文本
- TextView使用SpannableString设置复合文本
- TextView使用SpannableString设置复合文本
- TextView使用SpannableString设置复合文本
- TextView使用SpannableString设置复合文本
- TextView使用SpannableString设置复合文本
- TextView使用SpannableString设置复合文本
- TextView使用SpannableString设置复合文本
- TextView使用SpannableString设置复合文本
- TextView使用SpannableString设置复合文本
- Android复合文本SpannableString使用总结
- TextView使用SpannableString设置复合文本
- opengl设置了光源之后,画图的颜色设置为什么不生效了?怎么改?
- CSU 1933-购买饮料
- openstack之win7镜像初始化
- Java IO相关知识
- SpringBoot添加freemarker模板引擎
- 文本操作类SpannableString的使用
- 喵星球上的点名
- SQLite学习手册(锁和并发控制)
- n皇后问题
- springmvc映射的牛头不对马嘴的原因
- Mac系统安装Lua
- 000032:将两个数相加的结果输出
- 两个有序链表序列的合并 PAT
- Xcode下载低版本iOS系统模拟器进行调试