TextView设置不同的字体颜色大小的方法
2017-04-01 18:30
615 查看
有两种方法实现,第一种就是
1.创建完Spannable对象后,就可以为它们设置Span来实现想要的Rich Text了
例子简单如下:
效果图先上
text1
text3
SpannableString ss = new SpannableString( “我要打电话看看删除线绿色下划线”);
ss.setSpan(new ForegroundColorSpan(Color.RED), 0, 2,Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);
ss.setSpan(new URLSpan(“tel:4155551212”), 2, 5,Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);
ss.setSpan(new StyleSpan(Typeface.BOLD), 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, 15, Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);
Drawable d = getResources().getDrawable(R.mipmap.ic_launcher);
d.setBounds(0, 0, d.getIntrinsicWidth(), d.getIntrinsicHeight());
String newMessageInfo = “” + “博客”
+ “ ” + “奋斗的小菜鸡” + ” + “;
text2.setText(Html.fromHtml(newMessageInfo));
“`
在标签内进行样式的设置。
1.创建完Spannable对象后,就可以为它们设置Span来实现想要的Rich Text了
例子简单如下:
效果图先上
text1
SpannableStringBuilder builder=new SpannableStringBuilder("博客奋斗的小菜鸡"); ForegroundColorSpan redSpan=new ForegroundColorSpan(Color.RED); ForegroundColorSpan blueSpan=new ForegroundColorSpan(getResources().getColor(R.color.colorAccent)); ForegroundColorSpan yellowSpan=new ForegroundColorSpan(Color.YELLOW); ForegroundColorSpan whiteSpan=new ForegroundColorSpan(Color.WHITE); BackgroundColorSpan blackSpan=new BackgroundColorSpan(Color.BLACK); builder.setSpan(redSpan,0,1,Spanned.SPAN_EXCLUSIVE_EXCLUSIVE); builder.setSpan(blackSpan,0,2,Spanned.SPAN_EXCLUSIVE_EXCLUSIVE); builder.setSpan(whiteSpan,1,2,Spanned.SPAN_EXCLUSIVE_EXCLUSIVE); builder.setSpan(blueSpan,2,3,Spanned.SPAN_EXCLUSIVE_EXCLUSIVE); builder.setSpan(yellowSpan,3,8,Spanned.SPAN_EXCLUSIVE_EXCLUSIVE); text1.setText(builder);
text3
SpannableString ss = new SpannableString( “我要打电话看看删除线绿色下划线”);
ss.setSpan(new ForegroundColorSpan(Color.RED), 0, 2,Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);
ss.setSpan(new URLSpan(“tel:4155551212”), 2, 5,Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);
ss.setSpan(new StyleSpan(Typeface.BOLD), 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, 15, Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);
Drawable d = getResources().getDrawable(R.mipmap.ic_launcher);
d.setBounds(0, 0, d.getIntrinsicWidth(), d.getIntrinsicHeight());
text3.setText(ss); text3.setMovementMethod(LinkMovementMethod.getInstance()); text3.setMovementMethod(LinkMovementMethod.getInstance()); SpannableString sp = new SpannableString("这句话中有百度超链接,有高亮显示,这样,或者这样,还有斜体."); //设置超链接 sp.setSpan(new URLSpan("http://www.baidu.com"), 5, 7, Spanned.SPAN_EXCLUSIVE_EXCLUSIVE); sp.setSpan(new BackgroundColorSpan(Color.RED), 17 ,19,Spannable.SPAN_EXCLUSIVE_EXCLUSIVE); //设置斜体 sp.setSpan(new StyleSpan(android.graphics.Typeface.BOLD_ITALIC), 27, 29, Spannable.SPAN_EXCLUSIVE_INCLUSIVE); //SpannableString对象设置给TextView text4.setText(sp); //设置TextView可点击 text4.setMovementMethod(LinkMovementMethod.getInstance());
常见的Span有: •AbsoluteSizeSpan(int size) ---- 设置字体大小,参数是绝对数值,相当于Word中的字体大小 •RelativeSizeSpan(float proportion) ---- 设置字体大小,参数是相对于默认字体大小的倍数,比如默认字体大小是x, 那么设置后的字体大小就是x*proportion,这个用起来比较灵活,proportion>1就是放大(zoom in), proportion<1就是缩小(zoom out) •ScaleXSpan(float proportion) ---- 缩放字体,与上面的类似,默认为1,设置后就是原来的乘以proportion,大于1时放大(zoon in),小于时缩小(zoom out) •BackgroundColorSpan(int color) ----背景着色,参数是颜色数值,可以直接使用android.graphics.Color里面定义的常量,或是用Color.rgb(int, int, int) •ForegroundColorSpan(int color) ----前景着色,也就是字的着色,参数与背景着色一致 •TypefaceSpan(String family) ----字体,参数是字体的名字比如“sans", "sans-serif"等 •StyleSpan(Typeface style) -----字体风格,比如粗体,斜体,参数是android.graphics.Typeface里面定义的常量,如Typeface.BOLD,Typeface.ITALIC等等。 •StrikethroughSpan----如果设置了此风格,会有一条线从中间穿过所有的字,就像被划掉一样 2.用html标签进行字体颜色大小设置
String newMessageInfo = “” + “博客”
+ “ ” + “奋斗的小菜鸡” + ” + “;
text2.setText(Html.fromHtml(newMessageInfo));
“`
在标签内进行样式的设置。
相关文章推荐
- Android 一个TextView中设置文字不同字体大小和颜色的最完整方法
- 同一个TextView,不同颜色,不同字体大小设置
- android 通过一Textview设置不同大小的字体颜色
- TextView内容设置显示不同的字体颜色和不同的字体大小
- android 一个 textview 设置不同的字体大小和颜色
- Android textview 设置不同的字体大小和颜色
- TextView内容设置显示不同的字体颜色和不同的字体大小
- android 一个 textview 设置不同的字体大小和颜色
- android 一个 textview 设置不同的字体大小和颜色
- Android之TextView设置字体不同颜色大小
- android 一个 textview 设置不同的字体大小和颜色
- TextView设置不同的字体大小,颜色,类别
- 为TextView设置不同的字体大小和颜色
- android 一个 textview 设置不同的字体大小和颜色
- Android TextView 一些字体颜色、大小设置属性
- Android中TextView通过SpannableString设置字体、大小、颜色、样式、超级链接
- 同一TextView 上的文字设置不同的颜色,大小等
- android TextView改变部分字体的颜色,大小,设置部分字体有点击事件
- Android中的一个TextView中的字体设置不同大小
- android 设置textview中的字体颜色及大小