Android 的实现TextView中文字链接的方式有很多种。
总结起来大概有4种:
1.当文字中出现URL、E-mail、电话号码等的时候,可以将TextView的android:autoLink属性设置为相应的的值,如果是所有的类型都出来就是android:autoLink="all"。当然也可以在java代码里做,textView01.setAutoLinkMask(Linkify.ALL);
2.将要处理的文字写到一个资源文件,如string.xml,然后的java代码里引用(直接写在代码了是不可行的,会直接把文字都显示处理)
3.用Html类的fromHtml()方法格式化要放到TextView里的文字
4.用Spannable或实现它的类,如SpannableString来格式,部分字符串。
当然以上各种方法,不要在java代码里加上textView03.setMovementMethod(LinkMovementMethod.getInstance());这样的代码,否则无效。
java代码
Java代码
import android.app.Activity;
import android.graphics.Typeface;
import android.os.Bundle;
import android.text.Html;
import android.text.SpannableString;
import android.text.Spanned;
import android.text.method.LinkMovementMethod;
import android.text.method.ScrollingMovementMethod;
import android.text.style.StyleSpan;
import android.text.style.URLSpan;
import android.text.util.Linkify;
import android.widget.TextView;
public class LinkTest extends Activity {
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
TextView textView01 = (TextView) findViewById(R.id.textView01);
textView01.setAutoLinkMask(Linkify.ALL);
String autoLinkText = "http://student.csdn.net/?232885我的CSDN博客 ";
textView01.setText(autoLinkText);
TextView textView02 = (TextView) findViewById(R.id.textView02);
//String aLinkText = "<a href=\"http://student.csdn.net/?232885\">我的CSDN博客 </a>"
// + "<a href=\"tel:4155551212\">and my phone number</a>";
//textView02.setText(aLinkText);
textView02.setMovementMethod(LinkMovementMethod.getInstance());
TextView textView03 = (TextView) findViewById(R.id.textView03);
String htmlLinkText = "<a href=\"http://student.csdn.net/?232885\"><u>我的CSDN博客 </u></a>";
textView03.setText(Html.fromHtml(htmlLinkText));
textView03.setMovementMethod(LinkMovementMethod.getInstance());
TextView textView04 = (TextView) findViewById(R.id.textView04);
SpannableString ss = new SpannableString("call: 4155551212.");
ss.setSpan(new StyleSpan(Typeface.BOLD), 0, 5, Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);
ss.setSpan(new URLSpan("tel:4155551212"), 6, 16, Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);
textView04.setText(ss);
textView04.setMovementMethod(LinkMovementMethod.getInstance());
}
}
string.xml文件
Ruby代码
<?xml version="1.0" encoding="utf-8"?>
<resources>
<string name="hello">Hello World, LinkTest!</string>
<string name="app_name">LinkTest</string>
<string name="aLinkText">
<a href="http://student.csdn.net/?232885">我的CSDN博客 </a>
</string>
</resources>
main.xml文件
Ruby代码
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:autoLink="all"
>
<TextView
android:id="@+id/textView01"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
/>
<TextView
android:id="@+id/textView02"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/aLinkText"
/>
<TextView
android:id="@+id/textView03"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
/>
<TextView
android:id="@+id/textView04"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
/>
</LinearLayout>
分享到:
相关推荐
本文将深入探讨如何在Android的TextView中实现这些链接功能,包括打开网页和拨打电话。 首先,让我们了解TextView的基本用法。TextView是Android布局中的一个视图元素,它用于显示单行或多行的文本。通过XML布局...
在Android开发中,`TextView`是用于展示文本的最基础且重要的组件。它不仅可以显示单行文本,还能处理复杂的文字排版,包括自动换行。本文将深入探讨`TextView`在处理文字排版和换行方面的知识,以及如何优化其性能...
在Android中,可以使用`Html.fromHtml()`方法将HTML字符串转换为可以在`TextView`中显示的格式。例如: ```java String html = "<b>Hello, World!</b>"; TextView tv = (TextView) findViewById(R.id.text_view)...
在Android开发中,有时我们需要在TextView中展示富文本内容,比如HTML格式的文本,这能够增强界面的表现力,包括插入图片、设置字体样式等。这个"Android TextView显示html的demo"就是专门为了实现这一功能而设计的...
本文将深入探讨如何在Android的TextView中正确加载包含文字和图片的HTML内容,并解决图片显示为小方块的常见问题。 首先,我们要了解Android中的TextView默认并不支持HTML解析和渲染。为了使TextView能够处理HTML,...
在Android开发中,TextView是用于显示文本的基本组件,但有时候我们可能会遇到一个问题,那就是TextView在显示文本时可能会提前换行,这通常是由于图文混排、特殊字符或者特定字体大小导致的布局计算错误。...
在Android开发中,TextView是用于显示文本的基本组件。在许多应用界面中,我们不仅需要展示普通的文本,还可能需要在文本中嵌入超链接,改变部分文字的颜色或字体,以增强用户交互和信息传递的效果。这篇博文将深入...
在Android开发中,`TextView`通常用于显示文本内容,但有时候我们可能希望在其中嵌入动态图像,如GIF格式的图片。`TextView`默认并不支持直接显示GIF动画,因此需要通过一些特殊的方式来实现这一功能。本篇将详细...
在Android开发中,`TextView`是用于展示文本的视图组件,它提供了丰富的特性来定制文本的显示方式。本文将详细介绍`TextView`的一些关键XML属性,帮助开发者更好地理解和使用这个组件。 1. `android:autoLink` `...
在Android开发中,实现TextView的上下滚动效果可以让信息在有限的空间内持续展示,提升用户体验。以下将详细讲解如何实现这一功能。 首先,我们要明白TextView是Android SDK中的一个基础组件,用于显示单行或多行...
在Android开发中,TextView是用于显示文本的基本组件,它在用户界面中扮演着重要的角色,不仅可以展示纯文本,还能处理格式化文本、链接、样式等。这个"Android textView应用简单示例.zip"压缩包提供了对TextView...
TextView 是 Android 开发中最常用的 UI 组件之一,用于显示文本信息。它提供了许多属性来控制文本的显示样式、交互方式和行为。本文将详细介绍 TextView 的各个属性,并提供实践中的使用场景。 一、文本样式属性 ...
总之,动态设置TextView字体颜色是Android开发中的基础技能,涉及到的方法包括`setTextColor()`、`ForegroundColorSpan`、`ColorStateList`等。理解并熟练运用这些工具,可以帮助开发者创建更丰富、更具交互性的用户...
5. **高亮显示**: 为了高亮显示@人、话题或链接,我们可以在创建ClickableSpan时设置不同的前景色,或者在`updateDrawState()`中改变文字的样式,例如设置下划线或改变字体颜色。 6. **适配多行文本**: 当TextView...
Android TextView 文字片点击特效、点击事件监听实现了TextView 文字片段 点击_长按 事件监听 以及点击特效关键技术 在自定义Span中对TextPaint的color、bgcolor等属性设置选中时的文字颜色,背景色、 在自定义...
在Android开发中,`TextView`是用于展示文本的常用组件,但有时我们希望部分文本具有不同的样式,比如颜色不同,甚至能响应用户的点击事件,跳转到特定的链接。这通常涉及到`SpannableString`、`ClickableSpan`等...
《深入解析Android TextView》 在Android开发中,TextView是一个至关重要的组件,它是用户界面中...通过对“Think4AndroidTextView16062601.rar”中内容的学习,开发者可以进一步深化对TextView的理解,提高开发效率。
针对这种情况,Android 提供了支持富文本(Rich Text)的功能,允许在 `TextView` 中渲染 HTML 格式的内容,包括文字、图片、链接等。本教程将详细介绍如何在 `TextView` 中使用 HTML 片段来实现文字和图片的混排,...
这个控件允许文字沿垂直方向排列,并且还支持横向滚动,这在原生的Android `TextView`中是默认不支持的。 `TextView`是Android SDK中内置的一个基本视图组件,通常用于显示单行或多行文本。然而,当文本内容过多时...
在Android开发中,TextView是一个非常基础且重要的控件,它用于显示文本,可以是静态文本,也可以是动态加载的数据。TextView广泛应用于应用的各种界面中,如应用标题、按钮文字、列表项、提示信息等。本篇文章将...