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:[email protected]\n"; text += "我的电话:+ 86 010-87439874"; textView2.setText ( text ); textView2.setMovementMethod ( LinkMovementMethod .getInstance ( ) );
3. 说明
常用的可以再TextView中设定的标签有:
- <font>:设置颜色和字体。
- <big>:设置字体大号
- <small>:设置字体小号
- <i><b>:斜体粗体
- <a>:连接网址
- <img>:图片
使用这些标签可以用Html.fromHtml方法将这些标签的字符串转换成CharSequence接口,然后在 TextView.setText()中进行设置。如果需要响应设置的HTML标签进行响应,需要设置 TextView.setMovementMethod(LinkMovementMethod.getInstance())。
android:autoLink属性来设置,以下是android:autoLink属性的介绍:
- None:默认的,不匹配任何连接。
- web:网址。
- email:邮箱。
- phone:电话号码。
- map:匹配映射网址。
- all:匹配所有连接。
-------------------------------------------------------------------------------------------------------------------------------
实现代码
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());
-----------------------------------------------------------------------------------------------------------------------------
时间: 2024-10-10 01:25:11