`
阅读更多

设置文本颜色

tv.setText(Html.fromHtml("<font color = green>" + taskNum + "</font>" + "条任务," + "<font color = red>"
				+ undoTaskNum + "</font>" + "条未完成"));

 

设置文本下划线

 

tv.getPaint().setFlags(Paint.UNDERLINE_TEXT_FLAG);// 设置下划线

 

或者:

 

tv.setText(Html.fromHtml("<u>使用html实现下划线样式</u>"));// 设置下划线

 

设置文字粗体:

tv.getPaint().setFakeBoldText(true);

 布局文件中:

android:textStyle="bold"

 

 

设置文本中间横线

 

tv.getPaint().setFlags(Paint.STRIKE_THRU_TEXT_FLAG | Paint.ANTI_ALIAS_FLAG);

 

TextView中设置图片:

除了设置background和drawableLeft,drawableRight之类最常用的方法外,还有两种方式可以设置图片

1.在Html中使用<img>标签标记一张图片,通过ImageGetter类来显示:

String htmlSource = "<b>TextView_1:</b> This is a "
				+ "<a href=\"http://www.google.com\">link</a> "
				+ "with a image."
				+ "<img src=\"ic_launcher\">";
		CharSequence chars = Html.fromHtml(htmlSource, new ImageGetter() {

			@Override
			public Drawable getDrawable(String source) {

				Drawable drawFromPath;
				int path = MainActivity.this.getResources().getIdentifier(
						source, "drawable", "com.michael.textviewdemo");
				drawFromPath = (Drawable) MainActivity.this.getResources()
						.getDrawable(path);
				drawFromPath.setBounds(0, 0, drawFromPath.getIntrinsicWidth(),
						drawFromPath.getIntrinsicHeight());
				return drawFromPath;

			}

		}, null);
		tvOne.setMovementMethod(LinkMovementMethod.getInstance());//如果没有这句,则链接点击无效
		tvOne.setText(chars);

 

 如果你想显示只有文本的Html,那么可以使用:

 

public static Spanned fromHtml (String source)
 

 

如果你的这个Html中包含了图片,例如上面的例子中的<img src=\"ic_launcher\">,那么你可以使用:

 

public static Spanned fromHtml (String source, Html.ImageGetter imageGetter, Html.TagHandler tagHandler)  
 这个方法中的ImageGetter会处理你的Html中的<img>标签,生成Drawable返回。

 

 

 

 

2.使用ImageSpan对象来显示图片:

Bitmap bitmap = BitmapFactory.decodeResource(getResources(),
				R.drawable.ic_launcher);
		ImageSpan iamgeSpan = new ImageSpan(this, bitmap);
		SpannableString spannableString = new SpannableString("ic_launcher");
		spannableString.setSpan(iamgeSpan, 0, 1,
				Spannable.SPAN_EXCLUSIVE_EXCLUSIVE);
		tvTwo.setText(spannableString);

 

我们可以看到里面使用到了SpannableString这个对象,当你需要对TextView中的个别文字进行特殊处理,比如,加入链接地址,设置个别文字的字体,颜色,背景色,甚至插入图片等等,这时候就可以用SpannableString对象。

你可以通过连续setSpan来达到这个目的。setSpan中的第一个参数是Span对象:可以有多种类型,比如:

 

  1. new URLSpan("http://www.google.com")
  2. new BackgroundColorSpan(Color.RED)
  3. new ForegroundColorSpan(Color.YELLOW)
  4. new StyleSpan(android.graphics.Typeface.BOLD_ITALIC)
  5. new UnderlineSpan(); 
  6. new ImageSpan(drawable, ImageSpan.ALIGN_BASELINE);

很容易理解,通过设置这些Span来实现文字的特殊效果。

2,3两个参数是设置你的Span所针对的文字是哪些,索引从0到text.length。当然,如果你设置了ImageSpan,比如上面,那么第一个字符就被图片给替换掉了,因此,如果你不想被替换掉,那么你需要在text中为你的ImageSpan预留一个字符。

查看更多的Span可以参考android.text.style

 

一般的使用步骤是:

 

  1. SpannableString spannable = new SpannableString(str);
  2. // SpannableStringBuilder spannable = new SpannableStringBuilder(str);
  3. //创建各类Span
  4. CharacterStyle span=new UnderlineSpan(); 
  5. spannable.setSpan(span,start,end, Spannable.SPAN_INCLUSIVE_EXCLUSIVE);
  6. //可以连续设置span
  7. view.setText(spannable);

 

 

 

分享到:
评论

相关推荐

    安卓textView相关-Android去掉TextView的上下边距.zip

    在Android开发中,`TextView` 是一个非常基础且重要的组件,用于显示文本。然而,在实际应用中,我们可能会遇到`TextView`默认带有上下边距的问题,这可能不符合我们的设计需求或者影响界面布局的美观性。标题"安卓...

    旋转TextView文字显示方向

    在Android开发中,TextView是用于显示文本的基本组件。然而,有时候我们可能需要让TextView中的文字以特定的角度旋转显示,比如垂直显示或者倾斜显示,来满足界面设计的需求。这就是"旋转TextView文字显示方向"这一...

    Android通过textview设置状态

    在Android开发中,TextView是用于显示单行或多行文本的视图组件,它在界面设计中扮演着重要的角色。为了使TextView更具交互性,我们常常需要根据用户操作或特定条件来改变其显示状态,比如选中、聚焦或者按下等。在...

    旋转TextView文字显示

    在Android开发中,TextView是用于显示文本的基本组件。在某些设计需求中,我们可能需要让TextView的文字呈现旋转状态,比如创建一个垂直显示的标题或者实现某种动态效果。本篇文章将详细探讨如何实现“旋转TextView...

    android TextView 显示Gif 图片

    在Android开发中,`TextView`通常用于显示文本内容,但有时候我们可能希望在其中嵌入动态图像,如GIF格式的图片。`TextView`默认并不支持直接显示GIF动画,因此需要通过一些特殊的方式来实现这一功能。本篇将详细...

    Android TextView显示html的demo

    在XML布局文件中定义,或者在代码中创建,TextView可以用来显示静态文本,也可以动态加载数据。 2. **显示HTML内容**: - Android的TextView默认并不支持HTML解析,但通过`Html.fromHtml()`方法,我们可以将HTML...

    Android TextView查看更多

    在Android开发中,`TextView`是用于展示文本的常用组件,它可以显示单行或多行文本。在特定场景下,为了优化用户体验,我们可能希望只显示文本的一部分,如果文本内容超出了预设的显示范围,就用"点击查看更多"这样...

    TextView解决自动换行问题

    在Android开发中,`TextView` 是一个非常常用的控件,用于显示单行或多行文本。在某些场景下,我们可能希望限制`TextView`的显示行数,并在超出时使用省略号来表示文本被截断。这就涉及到`TextView`的自动换行与截断...

    安卓textView相关-代码动态改变某些textview文本颜色及其大小的方式.rar

    在Android开发中,TextView是用于显示单行或多行文本的视图组件,它在用户界面设计中扮演着重要角色。本资源"安卓textView相关-代码动态改变某些textview文本颜色及其大小的方式.rar"包含了关于如何在运行时动态修改...

    自定义TextVIew显示GIF图片

    在Android开发中,有时我们需要在TextView中展示动态的GIF图像,而系统默认的TextView并不支持直接播放GIF。为了实现这一功能,我们需要自定义一个TextView,并通过一系列技术手段来处理GIF文件。以下是如何在自定义...

    TextView的点击效果

    在Android开发中,TextView是应用界面中最常用的组件之一,它用于显示文本信息。为了提升用户体验,开发者经常需要为TextView添加点击效果,使用户能够清楚地感知到操作反馈。本篇文章将详细探讨如何实现TextView的...

    Android实现TextView文字滚动.zip

    在Android开发中,TextView是用于显示单行或多行文本的视图组件,它是我们日常开发中最常用的基础控件之一。然而,当TextView中的文本内容超出显示区域时,我们有时需要实现文本的滚动效果,以便用户可以查看全部...

    android 逐行显示自动换行的textview

    在Android开发中,文本视图(TextView)是用于展示文本的基本组件。然而,有时我们可能需要实现更复杂的显示效果,比如在应用中播放通知字幕时,逐行逐字显示文本,这通常用于模仿电视字幕或者游戏中的对话效果。在...

    android TextView异步加载HTML(含图片)

    在Android开发中,`TextView` 是一个非常常用的组件,用于显示单行或多行文本。然而,当文本包含HTML格式时,`TextView` 默认是不支持HTML解析和渲染的。为了在`TextView` 中显示带有HTML标签和图片的内容,我们需要...

    TextView的xml属性(Android)

    在Android开发中,`TextView`是用于展示文本的视图组件,它提供了丰富的特性来定制文本的显示方式。本文将详细介绍`TextView`的一些关键XML属性,帮助开发者更好地理解和使用这个组件。 1. `android:autoLink` `...

    Android实现在TextView文字过长时省略部分或滚动显示的方法

    在Android开发中,TextView是用于显示单行或多行文本的常用控件。然而,当文本内容过长时,为了适应屏幕大小,我们需要采取措施来处理这些超长的文本。本篇将详细介绍如何在TextView中实现文字过长时的省略显示和...

    Android textview 自定义布局

    在Android开发中,TextView是用于显示文本的基本组件。然而,有时候我们可能需要对TextView的布局进行自定义,使其能够满足特定的设计需求。本教程将详细讲解如何实现一个自定义的TextView布局,使得文本每四行平均...

    android自定义textview加载GIF(动态图)

    在Android开发中,有时我们需要在TextView中展示动态内容,如GIF动图。这在标准的Android SDK中并不直接支持,但可以通过自定义View或使用第三方库来实现。本篇文章将详细探讨如何在Android中自定义TextView以加载...

    带标签的TextView

    在Android开发中,`TextView` 是一个非常基础且重要的组件,用于显示文本信息。而"带标签的TextView",如标题所示,是在普通`TextView`的基础上进行了一定的扩展,通常是为了提供更丰富的用户界面元素,使用户可以更...

    Android TextView实现垂直滚动效果的方法

    在Android开发中,当需要在一个TextView中展示大量文本,而屏幕空间有限时,可以使用TextView的垂直滚动功能来实现文本的连续显示。本篇文章将详细讲解如何在Android中实现TextView的垂直滚动效果。 首先,要开启...

Global site tag (gtag.js) - Google Analytics