1、BackgroundColorSpan 背景色
SpannableString spanText = new SpannableString("萝卜白菜的博客 -- http://orgcent.com");
spanText.setSpan(new BackgroundColorSpan(Color.GREEN), 0, spanText.length(), Spannable.SPAN_INCLUSIVE_EXCLUSIVE);
mTVText.append("\n");
mTVText.append(spanText);
2.ForegroundColorSpan 文本颜色(前景色)
spanText = new SpannableString("萝卜白菜的博客 -- http://orgcent.com");
spanText.setSpan(new ForegroundColorSpan(Color.BLUE), 6, spanText.length(), Spannable.SPAN_INCLUSIVE_EXCLUSIVE);
mTVText.append("\n");
mTVText.append(spanText);
3.MaskFilterSpan 修饰效果,如模糊(BlurMaskFilter)、浮雕(EmbossMaskFilter)
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("\n");
mTVText.append(spanText);
4.RasterizerSpan 光栅效果
spanText = new SpannableString("StrikethroughSpan");
spanText.setSpan(new StrikethroughSpan(), 0, 7, Spannable.
SPAN_INCLUSIVE_EXCLUSIVE);
mTVText.append("\n");
mTVText.append(spanText);
5.StrikethroughSpan 删除线(中划线)
spanText = new SpannableString("StrikethroughSpan");
spanText.setSpan(new StrikethroughSpan(), 0, 7, Spannable.SPAN_INCLUSIVE_EXCLUSIVE);
mTVText.append("\n");
mTVText.append(spanText);
6.UnderlineSpan 下划线
spanText = new SpannableString("UnderlineSpan");
spanText.setSpan(new UnderlineSpan(), 0, spanText.length(), Spannable.SPAN_INCLUSIVE_EXCLUSIVE);
mTVText.append("\n");
mTVText.append(spanText);
7.DynamicDrawableSpan 设置图片,基于文本基线或底部对齐。
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("\n");
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("\n");
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("\n");
mTVText.append(spanText);
10.SubscriptSpan 下标(数学公式会用到)
spanText = new SpannableString("SubscriptSpan -- 萝卜白菜的博客");
spanText.setSpan(new SubscriptSpan(), 6, 7, Spannable.SPAN_INCLUSIVE_EXCLUSIVE);
mTVText.append("\n");
mTVText.append(spanText);
11.SuperscriptSpan 上标(数学公式会用到)
spanText = new SpannableString("SuperscriptSpan -- 萝卜白菜的博客");
spanText.setSpan(new SuperscriptSpan(), 6, 7, Spannable.SPAN_INCLUSIVE_EXCLUSIVE);
mTVText.append("\n");
mTVText.append(spanText);
12.URLSpan 文本超链接
spanText = new SpannableString("URLSpan -- 萝卜白菜的博客");
spanText.setSpan(new URLSpan("http://orgcent.com"), 10, spanText.length(), Spannable.SPAN_INCLUSIVE_EXCLUSIVE);
mTVText.append("\n");
mTVText.append(spanText);
//让URLSpan可以点击
mTVText.setMovementMethod(new LinkMovementMethod());
分享到:
相关推荐
在实际开发中,开发者可以根据需求选择合适的Span类型,通过setSpan方法将它们应用到特定的文本片段上,从而实现TextView的复合文本展示。这种方式极大地增强了TextView的灵活性,让UI设计更加丰富多样。同时,由于...
TextView使用SpannableString设置复合文本 TextView通常用来显示普通文本,但是有时候需要对其中某些文本进行样式、事件方面的设置。Android系统通过SpannableString类来对指定文本进行相关处理,具体有以下功能: 1...
PS:关于SpannableString相关的其他span,查看[Android教程]TextView使用SpannableString设置复合文本 2、使用Html.ImageGetter显示网页中的图片 查看文章:[Android教程]TextView显示Html类解析的网页和图片及自定义...
在某些情况下,当我们需要对`TextView`中的文本进行更精细的控制时,如自定义换行规则或者设置特殊的`SpannableString`,可能会遇到排版混乱的问题。本文将深入探讨如何解决`TextView`自动换行导致的排版问题,并...
4. 设置TextView:最后,将SpannableString设置到TextView中: ```java TextView textView = findViewById(R.id.textView); textView.setText(spannableText); ``` 通过这种方式,我们可以在一个TextView中实现...
那么如何对于TextView中各个部分的文本来设置字体,大小,颜色,样式,以及超级链接等属性呢?下面我们通过SpannableString的具体实例操作来演示一下。 package com.snowdream; import java.io.IOException; ...
其中,为`TextView`中的文本设置多种颜色是一项常见且实用的功能。本篇文章将详细探讨如何通过不同方法实现这一功能,并提供示例代码帮助开发者更好地理解和应用。 ### 一、使用HTML标签设置颜色 在Android中,...
将ClickableSpan应用于SpannableString的指定部分,然后设置到TextView。 ```java int start = text.indexOf(clickablePart); int end = start + clickablePart.length(); spannableText.setSpan(new ...
本篇文章将深入探讨如何使用`TextView`来显示丰富的文本,包括设置字体、颜色、样式,以及使用链接、图片和自定义视图等。 一、基本使用 `TextView`在XML布局文件中通过`<TextView>`标签定义,例如: ```xml ...
在Android开发中,SpannableString是一个非常重要的工具,它允许我们在TextView中实现各种富文本效果。这个技术专题主要探讨如何利用SpannableString来创建一个TextView,实现点击事件、下划线、局部字体放大、局部...
*支持Textview设置富文本点击 *设置Textview 中部分字设置可以点击、变色,设置setMovementMethod(LinkMovementMethod.getInstance())后滑动与Textview局部点击冲突...都已经解决. *解决点击空白区域依然有点击事件 ...
- 当设置`TextView`的文本时,记得使用`setMovementMethod(LinkMovementMethod.getInstance())`,否则点击事件可能无法正常触发。 - 范围的起始和结束位置应根据实际文本内容来设定,确保不会超出文本长度。 - 在...
在布局XML文件中定义一个TextView,并在代码中设置其文本,同时启用`android:textIsSelectable`属性以允许文本选择。 ```xml <TextView android:id="@+id/hyperlink_textview" android:layout_width="wrap_...
RichTextWrapper :TextView的包裹类,实现支持富文本,通过new RichTextWrapper(TextView v)来构造。 RTMovementMethod: 继承自Android原生的LinkMovementMethod,重写onTouchEvent方法,优化了ClickSpan(点击...
本文实例讲述了Android编程中TextView字体属性设置方法(大小、字体、下划线、背景色)。分享给大家供大家参考,具体如下: import android.content.Context; import android.graphics.Color; import android.text....
本文实例讲述了Android TextView中文字通过SpannableString设置属性的方法。分享给大家供大家参考,具体如下: 在Android中,TextView是我们最常用的用来显示文本的控件。 一般情况下,TextView中的文本都是一个样式...
`TextView`是Android系统提供的一种用于显示单行或多行文本的视图组件,它在各种应用场景中都有广泛使用,如消息提示、用户反馈、设置界面等。当需要实现更复杂的文本样式,如改变文本颜色、设置背景色、调整字体...
在实际应用中,我们可以通过StringBuilder或StringBuffer来构建原始文本,然后使用SpannableString的setSpan方法对特定位置的文本进行样式设置。最后,将SpannableString传递给TextView的setText方法即可。 在提供...