标签:
1.效果图
点击链接并且可以跳转到响应的网页中去
2. 实现代码
textView1 = ( TextView ) this.findViewById ( R.id.textview1 ); textView2 = ( TextView ) this.findViewById ( R.id.textview2 ); String html = "<font color=‘red‘>I love android</font><br>";//设置字体为红色,然后换行 html += "<font color=‘#0000ff‘><big><i>I love Java</i></big></font><p>";//设置字体蓝色,大号,斜体,设为一段 html += "<big><a href=‘http://www.baidu.com‘>百度</a></big>";//为百度这个文字添加超链接 CharSequence charSequence = Html.fromHtml ( html ); textView1.setText ( charSequence ); textView1.setMovementMethod ( LinkMovementMethod .getInstance ( ) );//设置文本中的信息点击能够产生超链接 String text = "我的URL:http://www.sina.com\n"; text += "我的Email:abcd@163.com\n"; text += "我的电话:+ 86 010-87439874"; textView2.setText ( text ); textView2.setMovementMethod ( LinkMovementMethod .getInstance ( ) );
3. 说明
常用的可以再TextView中设定的标签有:
使用这些标签可以用Html.fromHtml方法将这些标签的字符串转换成CharSequence接口,然后在 TextView.setText()中进行设置。如果需要响应设置的HTML标签进行响应,需要设置 TextView.setMovementMethod(LinkMovementMethod.getInstance())。
android:autoLink属性来设置,以下是android:autoLink属性的介绍:
-------------------------------------------------------------------------------------------------------------------------------
实现代码
public int getResouceId(String name){
try {
//根据资源的ID的变量名获得Field的对象,使用反射机制来实现的
Field field=R.drawable.class.getField(name);
//取得并返回资源的Id的字段(静态变量)的值,使用反射机制
return Integer.parseInt(field.get(null).toString());
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return 0;
}
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
TextView textView=(TextView)this.findViewById(R.id.textview1);
textView.setTextColor(Color.BLACK);
textView.setBackgroundColor(Color.WHITE);
textView.setTextSize(20);
String html="图像1<img src=‘v078_24‘/>图像2<img src=‘v079_24‘/>图像3<img src=‘v080_24‘/><p>";
html+="图像4<a href=‘http://www.baidu.com‘><img src=‘v081_24‘></a>图像5<img src=‘v082_24‘/>";
CharSequence charSequence=Html.fromHtml(html, new ImageGetter() {
@Override
public Drawable getDrawable(String source) {
//获得系统资源的信息,比如图片的信息
Drawable drawable=getResources().getDrawable(getResouceId(source));
//第三个图片文件按照50%的比例进行压缩
if(source.equals("v080_24")){
drawable.setBounds(0, 0, drawable.getIntrinsicWidth()/2, drawable.getIntrinsicWidth()/2);
}else{
drawable.setBounds(0, 0, drawable.getIntrinsicWidth(), drawable.getIntrinsicHeight());
}
return drawable;
}
}, null);
textView.setText(charSequence);
textView.setMovementMethod(LinkMovementMethod.getInstance());
}
-----------------------------------------------------------------------------------------------------------------------------
启动Activity
TextView textView1=(TextView)this.findViewById(R.id.textview1);
TextView textView2=(TextView)this.findViewById(R.id.textview2);
String text1="显示Activity1";
String text2="显示Activity2";
//主要用来拆分字符串
SpannableString spannableString=new SpannableString(text1);
SpannableString spannableString2=new SpannableString(text2);
spannableString.setSpan(new ClickableSpan() {//设置字符串的整个长度都能点击有效
@Override
public void onClick(View arg0) {
// TODO Auto-generated method stub
Intent intent=new Intent(MainActivity.this, Activity1.class);
startActivity(intent);
}
}, 0, text1.length(), SpannableString.SPAN_EXCLUSIVE_EXCLUSIVE);
spannableString2.setSpan(new ClickableSpan() {
@Override
public void onClick(View arg0) {
// TODO Auto-generated method stub
Intent intent=new Intent(MainActivity.this, Activity2.class);
startActivity(intent);
}
}, 0, text2.length(), SpannableString.SPAN_EXCLUSIVE_EXCLUSIVE);
textView1.setText(spannableString);
textView2.setText(spannableString2);
// 设置点击链接可以跳转
textView1.setMovementMethod(LinkMovementMethod.getInstance());
textView2.setMovementMethod(LinkMovementMethod.getInstance());
-----------------------------------------------------------------------------------------------------------------------------
标签:
原文地址:http://www.cnblogs.com/SM-t/p/4317372.html