- 浏览: 562576 次
- 性别:
- 来自: 北京
文章分类
最新评论
-
0759cxz:
good job!
Android 同时使用多个library时的问题 -
zhouxiaoli521:
lgj452555712 写道cursor 没有关闭,最好加上 ...
Android sqlite中判断某个表是否存在方法 -
lgj452555712:
cursor 没有关闭,最好加上finally 后关上fina ...
Android sqlite中判断某个表是否存在方法 -
zhouxiaoli521:
zhouxiaoli521 写道weinifk 写道publi ...
StringBuffer的setLength -
zhouxiaoli521:
weinifk 写道public static void ma ...
StringBuffer的setLength
首先看一个链接文本执行流程的大概示意图
看了这个流程应该对大概URL, Email等的链接实现有所了解了,所以直接看代码把
TextView view1 = (TextView) findViewById( R.id.view1 ); TextView view2 = (TextView) findViewById( R.id.view2 ); TextView view3 = (TextView) findViewById( R.id.view3 ); TextView view4 = (TextView) findViewById( R.id.view4 ); TextView view5 = (TextView) findViewById( R.id.view5 ); TextView view6 = (TextView) findViewById( R.id.view6 ); SpannableString text1 = new SpannableString("red"); text1.setSpan(new ForegroundColorSpan(Color.RED), 0, 3, Spanned.SPAN_EXCLUSIVE_EXCLUSIVE); view1.setText( text1 ); SpannableString text2 = new SpannableString("green"); text2.setSpan(new BackgroundColorSpan(Color.GREEN), 0, 5, Spanned.SPAN_EXCLUSIVE_EXCLUSIVE); view2.setText( text2 ); SpannableString text3 = new SpannableString("i am bold"); text3.setSpan(new StyleSpan(Typeface.BOLD_ITALIC), 5, 9, Spanned.SPAN_EXCLUSIVE_EXCLUSIVE); view3.setText( text3 ); SpannableString text4 = new SpannableString("underline"); text4.setSpan(new UnderlineSpan(), 0, 9, Spanned.SPAN_EXCLUSIVE_EXCLUSIVE); view4.setText( text4 ); SpannableString text5 = new SpannableString("delete line"); text5.setSpan(new StrikethroughSpan(), 7, 11, Spanned.SPAN_EXCLUSIVE_EXCLUSIVE); view5.setText( text5 ); SpannableString text6 = new SpannableString("make a call"); text6.setSpan(new URLSpan("tel:123456789"), 7, 11, Spanned.SPAN_EXCLUSIVE_EXCLUSIVE); view6.setText( text6 ); view6.setMovementMethod(LinkMovementMethod.getInstance()); // 还有ImageSpan等
<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="fill_parent" android:layout_height="fill_parent" android:orientation="vertical" > <TextView android:id="@+id/view1" android:layout_width="wrap_content" android:layout_height="50sp" android:gravity="center" /> <TextView android:id="@+id/view2" android:layout_width="wrap_content" android:layout_height="50sp" android:gravity="center" /> <TextView android:id="@+id/view3" android:layout_width="wrap_content" android:layout_height="50sp" android:gravity="center" /> <TextView android:id="@+id/view4" android:layout_width="wrap_content" android:layout_height="50sp" android:gravity="center" /> <TextView android:id="@+id/view5" android:layout_width="wrap_content" android:layout_height="50sp" android:gravity="center" /> <TextView android:id="@+id/view6" android:layout_width="wrap_content" android:layout_height="50sp" android:gravity="center" /> </LinearLayout>
默认的链接在点击时,只会跳转到响应的View,如点击URL时,打开浏览器,点击电话号码时,打开拨号界面。 如果我们要在点击某连接时,跳转到某个Activity呢。
URLSpan继承自ClickableSpan,所以我们的出发点也是这个类,然后重写其中的onClick
public class IntentSpan extends ClickableSpan implements ParcelableSpan { private Intent mIntent; public IntentSpan(Intent toActivity) { mIntent = toActivity; } @Override public void onClick(View sourceView) { Context context = sourceView.getContext(); context.startActivity( mIntent ); } @Override public int getSpanTypeId() { return 100; } @Override public int describeContents() { return 0; } @Override public void writeToParcel(Parcel dest, int flag) { // don't write to parcel } public Intent getIntent() { return mIntent; } }
使用的话和URLSpan差不多
SpannableString text6 = new SpannableString("make a call"); Intent intent = new Intent(context, SomActivity.class); text6.setSpan(new IntentSpan(intent), 7, 11, Spanned.SPAN_EXCLUSIVE_EXCLUSIVE); view6.setText( text6 ); view6.setMovementMethod(LinkMovementMethod.getInstance());
http://yuanzhifei89.iteye.com/blog/983944
发表评论
-
Android NDK开发环境搭建_r8
2014-04-23 16:32 1081本文主内容: 1、 Android NDK 安装 2、 ... -
Android java.lang.VerifyError 异常解决办法
2014-04-01 13:58 4598通常这个异常的问题出现在jar包上 我的情况是 sdk ... -
Android —— 关于ADT 17的BuildConfig.DEBUG
2014-03-21 11:02 1158在日常开发中,我们使用android.util.Lo ... -
Android 让多个Fragment 切换时不重新实例化
2013-12-05 18:48 1457在项目中需要进行Fragment的切换,一直都是用repla ... -
android学习—— context 和 getApplicationContext()
2013-09-22 11:08 1932在android中常常会遇到与context有关的内容 浅 ... -
Android requestFeature() must be called before adding content
2013-07-08 17:18 2369E/AndroidRuntime( 408): androi ... -
Android onActivityResult和横屏
2013-06-20 16:48 1834做一个项目 页面强制横屏 两个activity需要交互 现 ... -
Android 无法加载fragment的问题
2013-06-17 14:42 2455在项目中继承了fragment 重写了构造函数 make ... -
android源码解读一(Context)
2013-04-27 19:16 1794Context类 Context是一个抽象类 publi ... -
Android 4.1 动态加载APK中的资源
2013-04-24 17:29 4189*** is not owned by the curr ... -
Android ADT中增大AVD内存后无法启动:emulator failed to allocate memory 8
2013-04-15 15:45 1802过程中,增大对应AVD的 ... -
Android下面的MD5加密
2013-04-08 12:17 1003网上关于android下MD5加密的资料很多,但是测试了下 ... -
Android 调用系统应用程序信息(Application Info)界面
2013-03-15 18:30 1272“Android系统设置->应用程序->管理应用 ... -
Android Dialog背景透明和黑暗度
2013-03-14 18:20 4095设置透明度,主要设置的是dialog自身的透明度 ... -
全局监听SCREEN_ON和SCREEN_OFF的替代方法--监听屏幕解锁事件
2013-03-08 12:17 3040在做一个程序的时候,需要时刻保持某一服务是启动的, ... -
Android 退出应用程序
2013-01-21 10:53 926android.os.Process.killProcess ... -
Android控件WebView(浏览器)常用功能(图片、缩放)例子介绍
2012-11-06 11:03 2546Android系统默认提供WebView控件(view)来在应 ... -
Android ProgressBar使用.9图在部分android手机上显示异常!
2012-11-05 10:18 2171写道 我使用的是progressbar.xml配置文 ... -
Android 同时使用多个library时的问题
2012-10-29 12:40 1618剧情是这样,我的app要使用两个library,如:Li ... -
android圆形进度条ProgressBar颜色设置
2012-07-29 15:14 1362总结的挺全面 http://aichixihongshi.i ...
相关推荐
`android:autoLink`属性允许`TextView`自动识别并链接化特定类型的文本,如网址、电子邮件地址、电话号码和地图地址。通过设置不同的常量,可以开启不同的链接类型。例如: - `none`:默认值,不进行任何链接。 -...
当我们在TextView的文本中插入URL时,可以使用`android:autoLink="web"`属性,让系统自动识别并转换为可点击的超链接。但这种方法可能无法满足所有需求,例如自定义链接样式。此时,我们可以使用`SpannableString`和...
这里的`android:autoLink="web"`表示自动识别并链接URL。 ### 2. 使用`Linkify` Linkify类是Android提供的一个工具类,可以方便地将普通文本转换为链接。首先,我们需要导入`android.text.util.Linkify`库,然后在...
默认情况下,`TextView`会识别文本中的URL并自动将其设置为可点击的超链接,但其样式是系统默认的蓝色文字和下划线。若要自定义这些样式,我们可以采取以下方法: 1. **使用SpannableString**: 我们可以使用`...
1. `android:autoLink`:此属性允许TextView自动识别文本中的URL、电子邮件、电话号码或地图地址,并将其转换为可点击的链接。可选值包括`none`、`web`、`email`、`phone`、`map`和`all`,分别对应不同的链接类型。 ...
在Android开发中,TextView是用于显示单行或多行文本的常用组件。当涉及到在TextView中嵌入可点击的网页链接时,开发者需要了解如何在文本中设置超链接,并且处理用户的点击事件,以便用户能够方便地打开网页。下面...
### android_TextView属性详解 #### 一、概述 在Android开发中,`TextView`是非常重要的UI组件之一,用于展示文本信息。为了满足不同场景下的需求,`TextView`提供了丰富的属性来控制其外观和行为。本文将详细介绍...
在Android开发中,`TextView` 是一个非常常用的控件,用于显示单行或多行文本。然而,当需要在`TextView`中展示HTML格式的内容时,就需要进行一些特殊处理,以便让`TextView`能够理解并正确渲染HTML标签。本文将深入...
在Android开发中,有时我们需要在应用内部处理TextView中的超链接,而不是让它们默认跳转到外部浏览器。本文将详细介绍如何使用内置的WebView组件来实现这一功能。首先,我们需要理解两个关键概念:`WebView`和`...
### Android API TextView详解 在Android开发中,`TextView`是一个非常重要的基础组件,它用于在界面上展示文本信息。为了更好地理解和使用`TextView`,本文将深入探讨其API特性及用法。 #### 1. `TextView`的继承...
1. `android:autoLink`:这个属性允许自动识别文本中的URL、电子邮件、电话号码或地图地址,并将其转换为可点击的链接。可选值包括`none`(关闭自动链接)、`web`(链接网页)、`email`(链接电子邮件地址)、`phone...
在Android开发中,TextView是用于显示单行或多行文本的视图组件,它在用户界面设计中扮演着重要角色。当需要在TextView中插入可点击的超链接时,有多种方法可以实现这一功能。以下是对这些方法的详细介绍: 1. **...
- 大量文本:对于大量文本,使用`TextView.BufferType.SPANNABLE`或`BufferType.EDITABLE`可以提高性能。 - 多语言支持:注意在不同语言环境下,TextView的宽度可能变化,需要合理布局。 8. **其他特性**: - ...
### Android2.2—TextView API中文文档:深入解析 #### 引言 在Android开发中,`TextView`作为最常用的视图组件之一,用于展示文本信息。本文将深入解析`TextView` API,尤其是针对Android2.2版本的特性,帮助...
在Android开发中,Retrofit和TextView是两个非常重要的组件。Retrofit是一个强大的网络请求库,而TextView则是显示文本信息的基本控件。本文将详细介绍如何使用Retrofit进行简单的GET请求,并结合TextView实现文本中...
使用`android:autoLink`属性可以将文本中的URL、电话号码、邮箱等自动识别为链接,也可以通过`Linkify`类手动添加链接。 7. **多色文本** 通过`SpannableString`和`ForegroundColorSpan`等 Span 对象,可以创建...