Android—— TextView文字链接4中方法

转自:http://ghostfromheaven.iteye.com/blog/752181

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>  
时间: 2024-07-30 08:29:37

Android—— TextView文字链接4中方法的相关文章

Android TextView文字空格

 表示全角空格, <string name="aaa">你好      啊</string> http://stackoverflow.com/questions/1587056/android-string-concatenate-how-to-keep-the-spaces-at-the-end-and-or-beginnin 1.Even if you use string formatting sometimes you still need white

Android TextView文字透明度和背景透明度设置

textview1.setTextColor(Color.argb(255, 0, 255, 0)); //文字透明度 控件设为半透明: 控件名.getBackground().setAlpha(int); int 在0-255之间 package net.android.alpha; import android.widget.TextView; import android.os.Bundle; import android.view.ViewGroup; import android.ap

Android TextView 文字居中

有2种方法可以设置TextView文字居中: 一:在xml文件设置:android:gravity="center" 二:在程序中设置:m_TxtTitle.setGravity(Gravity.CENTER); 备注:android:gravity和android:layout_gravity的区别在于前者对控件内部操作,后者是对整个控件操作. 例如:android:gravity="center"是对textView中文字居中 android:layout_gr

Android:TextView文字跑马灯的效果实现

解决TextView文字显示不全的问题. 简单设置跑马灯的效果: <TextView android:id="@+id/textView" android:layout_width="match_parent" android:layout_height="wrap_content" android:ellipsize="marquee" android:focusable="true" androi

Android TextView文字过多时通过滚动条显示多余内容

方法一: TextView文字过多,显示不全,怎么办?我们可以为Textview添加滚动条. <TextView android:id="@+id/bus_detail_content" android:layout_width="fill_parent" android:layout_height="fill_parent" android:textColor="#000000" android:scrollbars=

Android textview 同时改变字符串中部分字体的颜色与大小

Android TextView 改变字体主要有两种方法: 1.Html.fromHtml 获取一个用html格式表示的Spanned. 2.另一种方式是直接构造使用一个Spanned. 若要同时改变字符串中部分字体的颜色与大小,采用第一种方式 html.fromHtml,用font标签来实现时,不幸的是Android中对font的属性只支持color与face,但不支持size.那么完全使用font标签的html,是实现不了了. 使用html改变字体大小的,可以尝试<small>或<h

[Android] TextView长按复制实现方法小结(转载)

这是别人写的,既然别人总结过了,那我就不花时间研究这个了,但往后会补充一些使用经验之类的 原文地址:http://blog.csdn.net/stzy00/article/details/41477813 本文地址:http://www.cnblogs.com/rossoneri/p/4432499.html 有这么一个需求,用户在浏览文本信息时希望长按信息就能弹出复制的选项方便保存或者在别的页面使用这些信息.类似的, 就像长按WebView或者EditText的内容就自动弹出复制选项. 这里面

教你如何实现 Android TextView 文字轮播效果

效果图: 实现思路: 1.ViewAnimator 思路 使用 ViewAnimator 自身特性,对期中的子 view 实现动画切换 2.自定义 viewGroup 思路 在这个思路下,我们自定义一个容器,继承 FrameLayout ,根据数据数量自己 new 相应数量的 itemView 出来加入 FrameLayout ,动画是通过对当前 itemView 做一个出去的佛纳甘话,同时对下一个 itemView 做一个进入动画,使用 handle 实现延迟轮换 3.ViewFlipper

Android TextView文字超出一屏不能显示其它的文字 解决方案

在android上面让TextView 过多的文字实现有滚动条,之前想简单了以为设置TextView的属性就可以实现,结果还是需要ScrollView配合使用,才能达到滚动条的效果有两种方式实现, 一种是代码写java的layout: 01.RelativeLayout.LayoutParams param = new RelativeLayout.LayoutParams(80,80); 02.//初始化滚动条控件 03.ScrollView scrollView =new ScrollVie