`
GhostFromheaven
  • 浏览: 397021 次
  • 性别: Icon_minigender_1
  • 来自: 武汉
社区版块
存档分类
最新评论

Android TextView文字链接4中方法

阅读更多
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代码
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文件

<?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文件
<?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>
  • 大小: 18.3 KB
分享到:
评论

相关推荐

    Android TextView中链接的实现

    本文将深入探讨如何在Android的TextView中实现这些链接功能,包括打开网页和拨打电话。 首先,让我们了解TextView的基本用法。TextView是Android布局中的一个视图元素,它用于显示单行或多行的文本。通过XML布局...

    android textview 文字排版 换行

    在Android开发中,`TextView`是用于展示文本的最基础且重要的组件。它不仅可以显示单行文本,还能处理复杂的文字排版,包括自动换行。本文将深入探讨`TextView`在处理文字排版和换行方面的知识,以及如何优化其性能...

    android TextView 支持CSS样式

    在Android中,可以使用`Html.fromHtml()`方法将HTML字符串转换为可以在`TextView`中显示的格式。例如: ```java String html = "&lt;b&gt;Hello, World!&lt;/b&gt;"; TextView tv = (TextView) findViewById(R.id.text_view)...

    Android TextView显示html的demo

    在Android开发中,有时我们需要在TextView中展示富文本内容,比如HTML格式的文本,这能够增强界面的表现力,包括插入图片、设置字体样式等。这个"Android TextView显示html的demo"就是专门为了实现这一功能而设计的...

    Android TextView加载Html中文字、图片

    本文将深入探讨如何在Android的TextView中正确加载包含文字和图片的HTML内容,并解决图片显示为小方块的常见问题。 首先,我们要了解Android中的TextView默认并不支持HTML解析和渲染。为了使TextView能够处理HTML,...

    MTextView,解决Android TextView提前换行的问题

    在Android开发中,TextView是用于显示文本的基本组件,但有时候我们可能会遇到一个问题,那就是TextView在显示文本时可能会提前换行,这通常是由于图文混排、特殊字符或者特定字体大小导致的布局计算错误。...

    Android TextView中文字设置超链接、颜色、字体

    在Android开发中,TextView是用于显示文本的基本组件。在许多应用界面中,我们不仅需要展示普通的文本,还可能需要在文本中嵌入超链接,改变部分文字的颜色或字体,以增强用户交互和信息传递的效果。这篇博文将深入...

    android TextView 显示Gif 图片

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

    TextView的xml属性(Android)

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

    Android 实现TextView上下滚动效果

    在Android开发中,实现TextView的上下滚动效果可以让信息在有限的空间内持续展示,提升用户体验。以下将详细讲解如何实现这一功能。 首先,我们要明白TextView是Android SDK中的一个基础组件,用于显示单行或多行...

    Android textView应用简单示例.zip

    在Android开发中,TextView是用于显示文本的基本组件,它在用户界面中扮演着重要的角色,不仅可以展示纯文本,还能处理格式化文本、链接、样式等。这个"Android textView应用简单示例.zip"压缩包提供了对TextView...

    android开发textview属性详情

    TextView 是 Android 开发中最常用的 UI 组件之一,用于显示文本信息。它提供了许多属性来控制文本的显示样式、交互方式和行为。本文将详细介绍 TextView 的各个属性,并提供实践中的使用场景。 一、文本样式属性 ...

    android动态设置TextView字体颜色

    总之,动态设置TextView字体颜色是Android开发中的基础技能,涉及到的方法包括`setTextColor()`、`ForegroundColorSpan`、`ColorStateList`等。理解并熟练运用这些工具,可以帮助开发者创建更丰富、更具交互性的用户...

    android中TextView高亮并可以点击

    5. **高亮显示**: 为了高亮显示@人、话题或链接,我们可以在创建ClickableSpan时设置不同的前景色,或者在`updateDrawState()`中改变文字的样式,例如设置下划线或改变字体颜色。 6. **适配多行文本**: 当TextView...

    Android TextView 文字片点击特效、点击事件监听实现了TextView 文字片段

    Android TextView 文字片点击特效、点击事件监听实现了TextView 文字片段 点击_长按 事件监听 以及点击特效关键技术 在自定义Span中对TextPaint的color、bgcolor等属性设置选中时的文字颜色,背景色、 在自定义...

    android textview 部分文本变色,点击跳转

    在Android开发中,`TextView`是用于展示文本的常用组件,但有时我们希望部分文本具有不同的样式,比如颜色不同,甚至能响应用户的点击事件,跳转到特定的链接。这通常涉及到`SpannableString`、`ClickableSpan`等...

    Think4AndroidTextView16062601.rar

    《深入解析Android TextView》 在Android开发中,TextView是一个至关重要的组件,它是用户界面中...通过对“Think4AndroidTextView16062601.rar”中内容的学习,开发者可以进一步深化对TextView的理解,提高开发效率。

    Android-TextView-富文本-html图片显示.rar

    针对这种情况,Android 提供了支持富文本(Rich Text)的功能,允许在 `TextView` 中渲染 HTML 格式的内容,包括文字、图片、链接等。本教程将详细介绍如何在 `TextView` 中使用 HTML 片段来实现文字和图片的混排,...

    Android文字竖直排版TextViewVertical(可横向滚动)(转)

    这个控件允许文字沿垂直方向排列,并且还支持横向滚动,这在原生的Android `TextView`中是默认不支持的。 `TextView`是Android SDK中内置的一个基本视图组件,通常用于显示单行或多行文本。然而,当文本内容过多时...

    Android TextView 控件例子

    在Android开发中,TextView是一个非常基础且重要的控件,它用于显示文本,可以是静态文本,也可以是动态加载的数据。TextView广泛应用于应用的各种界面中,如应用标题、按钮文字、列表项、提示信息等。本篇文章将...

Global site tag (gtag.js) - Google Analytics