Spannable

来源:互联网 发布:小猪cms创始人 编辑:程序博客网 时间:2024/05/29 02:47

TextView和EditText是用来显示文本的,有时需要给TextView中的个别字设置为超链接,或者设置个别字的颜色、字体等,那就需要用到Spannable对象,可以借助Spannable对象实现以上设置。

使用步骤:

  1. SpannableString spannable = new SpannableString(str);
  2. // SpannableStringBuilder spannable = new SpannableStringBuilder(str);
  3. //创建各类Span
  4. CharacterStyle span=new UnderlineSpan(); 
  5. spannable.setSpan(span,start,end, Spannable.SPAN_INCLUSIVE_EXCLUSIVE);
  6. //可以连续设置span
  7. view.setText(spannable);
void android.text.SpannableString.setSpan(Object what, int start, int end, int flags)

setSpan会将start到end这间的文本设置成创建的span格式。span可以是图片格式。

各类Span示例

  1. new URLSpan("http://www.baidu.com")
  2. new BackgroundColorSpan(Color.RED)
  3. new ForegroundColorSpan(Color.YELLOW)
  4. new StyleSpan(android.graphics.Typeface.BOLD_ITALIC)
  5. new UnderlineSpan(); 
  6. new ImageSpan(drawable, ImageSpan.ALIGN_BASELINE);

TextView是用来显示文本的,有时需要给TextView中的个别字设置为超链接,或者设置个别字的颜色、字体等,那就需要用到Spannable对象,可以借助Spannable对象实现以上设置。

package com.qudaicheng.hello;

 

import android.app.Activity;

import android.graphics.Color;

import android.os.Bundle;

import android.text.Spannable;

import android.text.SpannableString;

import android.text.Spanned;

import android.text.method.LinkMovementMethod;

import android.text.style.BackgroundColorSpan;

import android.text.style.ForegroundColorSpan;

import android.text.style.StyleSpan;

import android.text.style.URLSpan;

import android.widget.TextView;

 

public class helloActivity extends Activity

{

/** Called when the activity is first created. */

@Override

public void onCreate(Bundle savedInstanceState)

{

super.onCreate(savedInstanceState);

setContentView(R.layout.main);

 

TextView myTextView = (TextView)this.findViewById(R.id.tv);

// 创建一个 SpannableString对象

SpannableString sp = new SpannableString("这句话中有百度超链接,有高亮显示,这样,或者这样,还有斜体.");

// 设置超链接

sp.setSpan(new URLSpan("http://www.baidu.com"), 5, 7, Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);

// 设置高亮样式一

sp.setSpan(new BackgroundColorSpan(Color.RED), 17, 19, Spannable.SPAN_EXCLUSIVE_EXCLUSIVE);

// 设置高亮样式二

sp.setSpan(new ForegroundColorSpan(Color.YELLOW), 20, 24, Spannable.SPAN_EXCLUSIVE_INCLUSIVE);

// 设置斜体

sp.setSpan(new StyleSpan(android.graphics.Typeface.BOLD_ITALIC), 27, 29, Spannable.SPAN_EXCLUSIVE_INCLUSIVE);

// SpannableString对象设置给TextView

myTextView.setText(sp);

// 设置TextView可点击

myTextView.setMovementMethod(LinkMovementMethod.getInstance());

 

// TextView tv=(TextView)findViewById(R.id.tv);

// String str="我的一个android测试程序";

// SpannableStringBuilder stryle = new SpannableStringBuilder(str);

// stryle.setSpan(new ForegroundColorSpan(Color.BLUE), 0, 4, Spannable.SPAN_EXCLUSIVE_EXCLUSIVE);

// stryle.setSpan(new ForegroundColorSpan(Color.RED), 4, 11, Spannable.SPAN_EXCLUSIVE_EXCLUSIVE);

// stryle.setSpan(new ForegroundColorSpan(Color.WHITE), 11, 15, Spannable.SPAN_EXCLUSIVE_EXCLUSIVE);

// tv.setText(stryle);

}

}


原创粉丝点击
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 小孩学习态度差怎么办 孩子不好好上学怎么办 小孩读书态度不好怎么办 幼儿园孩子不认识数字怎么办 一年级孩子拼音很差怎么办 孩子的拼音不好怎么办 小孩不会拼拼音怎么办 小孩拼音学不会怎么办 儿童l发音不准怎么办 小孩发音不标准怎么办 拼音l发音不准怎么办 孩子拼音声调分不清怎么办 小孩gk读成dt怎么办 拼音音调学不会怎么办 会拼音不会打字怎么办 大人拼音学不会怎么办 志愿服务经历少怎么办 医保报销发票丢失怎么办 费用发票丢失了怎么办 小孩乱拿东西怎么办 在家突然生了怎么办 二胎在家生的怎么办? 奶有一边没有怎么办 孩子应用题很弱怎么办 做不到不嫉妒怎么办 小孩自律太差怎么办 小学四年级数学差怎么办 孩子应用题做不好怎么办 宿舍有人嫉妒我怎么办 别人说我坏话怎么办 总爱嫉妒别人怎么办 讨厌一个人怎么办整他 招人嫉妒了怎么办 遇到别人的挑衅怎么办 英语基础没学好怎么办 英语基础特别差怎么办 有一定英语基础怎么办 大学被室友嫉妒怎么办 孩子不会的题目怎么办 小学数学应用题不好怎么办 小孩英语学不会怎么办