Android -- TextView (3)

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());

 -----------------------------------------------------------------------------------------------------------------------------

 

郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。