`
- 浏览:
14573 次
-
TextView url 识别,Spannable 使用 电话 网址 邮件
首先看一个链接文本执行流程的大概示意图
看了这个流程应该对大概URL, Email等的链接实现有所了解了,所以直接看代码把
-
TextViewview1=(TextView)findViewById(R.id.view1);
-
TextViewview2=(TextView)findViewById(R.id.view2);
-
TextViewview3=(TextView)findViewById(R.id.view3);
-
TextViewview4=(TextView)findViewById(R.id.view4);
-
TextViewview5=(TextView)findViewById(R.id.view5);
-
TextViewview6=(TextView)findViewById(R.id.view6);
-
-
SpannableStringtext1=newSpannableString("red");
-
text1.setSpan(newForegroundColorSpan(Color.RED),0,3,Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);
-
view1.setText(text1);
-
-
SpannableStringtext2=newSpannableString("green");
-
text2.setSpan(newBackgroundColorSpan(Color.GREEN),0,5,Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);
-
view2.setText(text2);
-
-
SpannableStringtext3=newSpannableString("iambold");
-
text3.setSpan(newStyleSpan(Typeface.BOLD_ITALIC),5,9,Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);
-
view3.setText(text3);
-
-
SpannableStringtext4=newSpannableString("underline");
-
text4.setSpan(newUnderlineSpan(),0,9,Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);
-
view4.setText(text4);
-
-
SpannableStringtext5=newSpannableString("deleteline");
-
text5.setSpan(newStrikethroughSpan(),7,11,Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);
-
view5.setText(text5);
-
-
SpannableStringtext6=newSpannableString("makeacall");
-
text6.setSpan(newURLSpan("tel:123456789"),7,11,Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);
-
view6.setText(text6);
-
view6.setMovementMethod(LinkMovementMethod.getInstance());
-
-
XML布局文件
-
-
<?xmlversion="1.0"encoding="utf-8"?>
-
<LinearLayout
-
xmlns:android="http://schem<wbr>as.android.c<wbr>om/apk/res/a<wbr>ndroid</wbr></wbr></wbr>"
-
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
-
publicclassIntentSpanextendsClickableSpanimplementsParcelableSpan{
-
privateIntentmIntent;
-
-
publicIntentSpan(IntenttoActivity){
-
mIntent=toActivity;
-
}
-
-
@Override
-
publicvoidonClick(ViewsourceView){
-
Contextcontext=sourceView.getContext();
-
context.startActivity(mIntent);
-
}
-
-
@Override
-
publicintgetSpanTypeId(){
-
return100;
-
}
-
-
@Override
-
publicintdescribeContents(){
-
return0;
-
}
-
-
@Override
-
publicvoidwriteToParcel(Parceldest,intflag){
-
-
}
-
-
publicIntentgetIntent(){
-
returnmIntent;
-
}
-
}
-
使用的话和URLSpan差不多
-
SpannableStringtext6=newSpannableString("makeacall");
-
Intentintent=newIntent(context,SomActivity.class);
-
text6.setSpan(newIntentSpan(intent),7,11,Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);
-
view6.setText(text6);
-
view6.setMovementMethod(LinkMovementMethod.getInstance());
-
分享到:
Global site tag (gtag.js) - Google Analytics
相关推荐
自动识别url的TextView.rar,太多无法一一验证是否可用,程序如果跑不起来需要自调,部分代码功能进行参考学习。
主要介绍了关于Android中TextView自动识别url且实现点击跳转的相关资料,文中给出了详细的示例代码,对大家具有一定的参考价值,需要的朋友们下面来一起看看吧。
通过Spannable设置TextView文字样式,相关博文:http://www.cnblogs.com/tianzhijiexian/p/4222393.html
本案例为TextView超简单实现电话短信网址超链接实例,适合各种初学者,拿来直接转化就行,好用点赞!
自动换行的textview 自定义view 识别英文
spannable textview是一个自定义的文本视图,允许您通过spannables自定义文本片段或语句的样式,但不必直接处理spannable本身。
仿微博获取到TextView中的url地址并且用“网址链接”替换,点击跳转
公司最近要使用以上几个功能,研究了一下textView的识别功能 效果不错 主要难点在于动态设置textView与cell的行高 网上找了很多方法都不太准确 在这个问题上纠结了很久才解决掉 。
支持TextView默认支持的标签 支持自定义标签,接口类似Html.TagHandler 1 自定义标签: /** * 解析哈哈哈 */ public class SpanTagHandler implements HtmlTagHandler.TagHandler { private String fontColor =...
因为最近有需要要识别Textview中的链接部分,然后看了下系统的URLSpan的发现还是不太好,因为如果链接部分前后 如果没有空格,或者有数字、字母也是会有问题的,所以打算自己用正则做,如效果不佳 可自行修改正则来...
android TextView android TextView
在本篇文章里小编给大家整理的是关于android TextView中识别多个url并分别点击跳转方法详解,需要的朋友们可以学习参考下。
使用TextView的autoLink属性设置超链接,用工具类方式和自定义View方式两种方式修改超链接显示样式和链接地址的点击事件。
最近在项目中使用textview时发现在使用Android:layout_height=”wrap_content”这个属性设置后,textview会有默认的padding,也就是fontpadding。这样就会造成textview和其他view中间的间距会比自己的设置的大。那么...
TextView使用HTML处理字体样式、显示图片等
1、TextView使用ImageSpan显示图片 ImageSpan span = new ImageSpan(this, R.drawable.ic_launcher); SpannableString spanStr = new SpannableString("http://orgcent.com"); spanStr.setSpan(span, spanStr.length...
Retorfit的简单使用get请求,TextView的文本超链接识别源码
TextView实现无下划线的url链接