Android开发技巧三--格式化TextView文本

本例主要研究一下如何在TextView中显示网页链接和改变特定文字颜色

1.main.xml

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical" >

    <TextView
        android:id="@+id/tv_url"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content" />
    <TextView
        android:id="@+id/tv_color"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="HelloWorld,HomeActivity!"/>

</LinearLayout>

2.MainActivity.java:

package com.yayun.edittextdatedemo;

import android.app.Activity;
import android.graphics.Color;
import android.os.Bundle;
import android.text.Html;
import android.text.Spannable;
import android.text.SpannableString;
import android.text.method.LinkMovementMethod;
import android.text.style.BackgroundColorSpan;
import android.text.style.ForegroundColorSpan;
import android.widget.TextView;

public class MainActivity extends Activity {
	private TextView mTextView1;
	private TextView mTextView2;

	@Override
	protected void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		setContentView(R.layout.activity_main);
		mTextView1=(TextView) findViewById(R.id.tv_url);
		mTextView2=(TextView) findViewById(R.id.tv_color);

		String text="Visit <a href=\"http://www.baidu.com\">百度网</a>";
		mTextView1.setText(Html.fromHtml(text));//以链接的形式显示
		mTextView1.setMovementMethod(LinkMovementMethod.getInstance());//在单击链接时凡是要执行的动作,都必须设置MovementMethod对象

		Spannable sTextSpannable=new SpannableString(mTextView2.getText());
		sTextSpannable.setSpan(new BackgroundColorSpan(Color.RED),1,4,0);//spannableString.setSpan(backgroundColorSpan, start, end, Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);
		sTextSpannable.setSpan(new ForegroundColorSpan(Color.BLUE),5,9,0);
		mTextView2.setText(sTextSpannable);

	}

}

3.运行实例:

总结

1.Html.fromHtml(text),将文本转成html形式;

2.mTextView1.setMovementMethod(LinkMovementMethod.getInstance());//在单击链接时凡是要执行的动作,都必须设置MovementMethod对象

3.sTextSpannable.setSpan(new BackgroundColorSpan(Color.RED),1,4,0);//spannableString.setSpan(backgroundColorSpan, start, end, Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);

时间: 2024-10-05 06:36:27

Android开发技巧三--格式化TextView文本的相关文章

50个Android开发技巧(10 为TextView加入样式)

首先来看一个控件的例子: (原文地址:http://blog.csdn.net/vector_yi/article/details/24428085) 手机上类似这种场景你一定已经见过非常多次了,但有没有考虑过它是如何实现的? 或许你会觉得这是一个略微复杂的自己定义的View,但,没错,这实际上仅仅是一个原生的TextView而已. TextView是一个简单而奇妙的Widget,你能够利用它以不同风格不同格式来展现文字. 举两个简单的样例: 1.在TextView中加入一个超链接 事实上非常e

Android 开发技巧总结(三)

1.在界面中按返回键判断某个控件的可见性,如果可见,则用动画让其消失,应用并不退出. Onkeydown方法中: if(keyCode == 4){ if(slidingMenu.getVisibility() == View.VISIBLE){ //退出的动画 AnimationSet animationSet = new AnimationSet(true); TranslateAnimation animation = new TranslateAnimation(0,-280, 0, 0

Android开发技巧——自定义控件之自定义属性

Android开发技巧--自定义控件之自定义属性 掌握自定义控件是很重要的,因为通过自定义控件,能够:解决UI问题,优化布局性能,简化布局代码. 上一篇讲了如何通过xml把几个控件组织起来,并继承某个ViewGroup子类,把它们封装起来使用.这是我们接触到的最简单的一种自定制控件了.但许多时候,我们还需要在布局文件中使用它们的时候,能通过属性传入一些值,来影响最终的显示结果. 我们在做项目中经常会遇到的一个情况:一张图片加一个文本的组合.比如充值账户成功之后显示的一个界面,上面是一个表示成功的

Android开发技巧——使用PopupWindow实现弹出菜单

在本文当中,我将会与大家分享一个封装了PopupWindow实现弹出菜单的类,并说明它的实现与使用. 因对界面的需求,android原生的弹出菜单已不能满足我们的需求,自定义菜单成了我们的唯一选择,在本文当中,我将与大家分享如何使用PopupWindow实现弹出菜单. 1.弹出菜单的封装PopMenu PopupWindow可以说是一个浮动在Activity之上的容器,通常用来显示自定义的视图.比如像自动完成输入框AutoCompleteTextView,它的提示列表就是使用PopupWindo

Android开发技巧——实现可复用的ActionSheet菜单

在上一篇<Android开发技巧--使用Dialog实现仿QQ的ActionSheet菜单>中,讲了这种菜单的实现过程,接下来将把它改成一个可复用的控件库. 本文原创,转载请注明出处: http://blog.csdn.net/maosidiaoxian/article/details/46324941 对于要实现的可复用的控件库,我需要它具备以下两点: 可添加远程依赖(不考虑Eclipse中的使用) 可灵活配置 分离库的实现代码 对于第一点,需要做的就是在Android Studio中新建一

Android 开发技巧总结

1.项目中设置每个activity的启动模式(如果堆栈中存在此activity就会重用,并提到栈顶,不会创建新的activity)  android:launchMode="singleTask" 2.如果界面中的布局被弹出的软键盘改变,则在对应的activity中加入如下代码即可. android:windowSoftInputMode="adjustPan|stateHidden" 3.去掉ScrollView拉倒边缘时的效果: scrollView.setOv

50个Android开发技巧(24 处理ListView数据为空的情况)

在移动平台上为用户展示数据的一个经常用法是将数据填充进一个List内,而此时须要注意的一点就是: 原文地址:(http://blog.csdn.net/vector_yi/article/details/24936163) 怎样处理须要填充的数据为空的情况? ListView及其它继承自AdapterView的类都有一个简便的处理这样的情况的方法:setEmptyView(View). 当ListView的Adapter为空或者Adapter的isEmpty()方法返回true的时候,它将会把设

Android开发技巧——大图裁剪

本篇内容是接上篇<Android开发技巧--定制仿微信图片裁剪控件> 的,先简单介绍对上篇所封装的裁剪控件的使用,再详细说明如何使用它进行大图裁剪,包括对旋转图片的裁剪. 裁剪控件的简单使用 XML代码 使用如普通控件一样,首先在布局文件里包含该控件: <com.githang.clipimage.ClipImageView xmlns:app="http://schemas.android.com/apk/res-auto" android:id="@+i

Android开发技巧之viewstub用法详解及实现延迟加载

这一篇是接着上面的include标签的例子来讲的,地址http://blog.csdn.net/jason0539/article/details/26131831 上一篇的布局中间就用了viewstub这个控件,现在来说一下其作用和用法 " ViewStub 是一个不可见的,大小为0的View,最佳用途就是实现View的延迟加载,避免资源浪费,在需要的时候才加载View " 需要注意的是,加载view之后,viewstub本身就会被新加载进来的view替换掉 上代码了,看完就理解了