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

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

时间: 2024-10-10 01:25:11

Android -- TextView (3)的相关文章

Android TextView(EditView)文字底部或者中间 加横线

Android TextView(EditView)文字底部或者中间 加横线 tv = (TextView) this .findViewById(R.id. text_view ); 中间加横线 tv.getPaint().setFlags(Paint. STRIKE_THRU_TEXT_FLAG ); 底部加横线: tv .getPaint().setFlags(Paint. UNDERLINE_TEXT_FLAG );

Android SwitchButton(滑动开关)

版本:1.0 日期:2014.5.17 2014.6.1 版权:© 2014 kince 转载注明出处 在介绍SwitchButton之前,先来看一下系统Button是如何实现的.源码如下: @RemoteView public class Button extends TextView { public Button(Context context) { this(context, null); } public Button(Context context, AttributeSet att

Android 自动化测试(5)&lt;robotium&gt;

关于Android的自动化测试之UI测试,之前介绍过Android 自动化测试(4)<uiautomator>, 在android原生的单元测试框架上,利用uiautomator.jar这个类库来完成Android的界面上的测试,这已经使得测试比较简单了.但还有更加简单的写测试的方式,那就是利用一些第三方的测试框架,比如robotium. Android的第三方的测试框架,有Robolectric 和 robotium,我试着用了下,觉得robotium已经非常好用了. 1.概要 Roboti

android - 自定义(组合)控件 + 自定义控件外观

转载:http://www.cnblogs.com/bill-joy/archive/2012/04/26/2471831.html android - 自定义(组合)控件 + 自定义控件外观 Android自定义View实现很简单 继承View,重写构造函数.onDraw,(onMeasure)等函数. 如果自定义的View需要有自定义的属性,需要在values下建立attrs.xml.在其中定义你的属性. 在使用到自定义View的xml布局文件中需要加入xmlns:前缀="http://sc

Android AppWidget(转)

AppWidget不知道大家使用这个多不多,这个在手机上也叫做挂件,挂件也就是放在桌面方便用户进行使用的,从android1.6开始挂件支持一些简单的lauout和view,到了android4.0之后谷歌在挂件上也是加上了更为丰富的view支持,下面我们就从头开始来介绍一下这些挂件吧. 如何添加一个简单的AppWidget挂件 添加一个挂件很简单,分为四部,只要按照这四部来弄就很容易添加上一个挂件: (1)添加AppWidgetProviderInfo信息,这个信息是一个以xml文件形式出现的

集成Android SlidingMenu(SlideMenu)

 左右效果图如下: 左边 右边 Android SlidingMenu(SlideMenu)是一个开源项目框架.在git上的下载地址:https://github.com/jfeinstein10/SlidingMenu 现在基于Fragment给出一个简单的左边+右边的SlidingMenu(SlideMenu) .首先要引入第三方库,这不比多说,现到git上把最新的项目代码下载到本地然后导入到工程中,接下来就是导入和写自己的代码. 主Activity: <span style="f

Android UI(五)云通讯录项目之联系人列表,带侧滑选择,带搜索框

作者:泥沙砖瓦浆木匠网站:http://blog.csdn.net/jeffli1993个人签名:打算起手不凡写出鸿篇巨作的人,往往坚持不了完成第一章节.交流QQ群:[编程之美 365234583]http://jq.qq.com/?_wv=1027&k=XVfBTo 要捐钱的就打支付宝吧:13958686678(泥瓦匠开个玩笑~) 一.前言 继续AndroidUI系列,泥瓦匠又要开始扯淡了.哈哈今天在文章头加了个支付宝账号.我也真逗,至今没收到一笔是写博客的钱.或是分享的.泥瓦匠也就挂着逗逗乐

使用Kotlin开发Android应用(IV):自定义视图和Android扩展

使用Kotlin开发Android应用(IV):自定义视图和Android扩展 @author ASCE1885的 Github 简书 微博 CSDN 原文链接 在读完扩展函数和默认值这篇文章之后,那么接下来要介绍什么呢?在本系列第一篇文章中我们说过,Kotlin使得Android开发更加简单,本文我们将进一步作介绍. 自定义视图 你应该还记得,在说到Kotlin的局限性时,我们提到了在Kotlin早期版本(M10之前)是不支持自定义视图的,因为当时只能为每个类创建一个构造函数.这通常是足够的,

OpenCV for Android 使用(Linux)

OpenCV for Android 使用(Linux) 根据OpenCV4Android的文档一步步往下走. 导入这些项目后,出现如下的构建问题: * Build of configuration Default for project OpenCV Tutorial 2 - Mixed Processing * /ndk-build.cmd Cannot run program "/ndk-build.cmd": Unknown reason Error: Program &quo