使用SpannableString实现字体的各种效果
来源:互联网 发布:软件 职称 编辑:程序博客网 时间:2024/04/29 10:32
转载自:http://blog.csdn.net/jjwwmlp456/article/details/2117466
代码很简单,这个代码可以实现同一行的文本的字体使用不同的样式,比如有的一行文本String,要使中间的几个字变成红色,或者变成斜体,就可以用这样的代码
先上代码,基本与原创没有太大改动
package com.example.testspanablestring;import android.app.Activity;import android.graphics.Color;import android.graphics.Typeface;import android.os.Bundle;import android.text.Spannable;import android.text.SpannableString;import android.text.style.AbsoluteSizeSpan;import android.text.style.BackgroundColorSpan;import android.text.style.ForegroundColorSpan;import android.text.style.StrikethroughSpan;import android.text.style.StyleSpan;import android.text.style.URLSpan;import android.text.style.UnderlineSpan;import android.view.View;import android.view.View.OnClickListener;import android.widget.Button;import android.widget.EditText;public class SpannableStringActivity extends Activity implements OnClickListener {private EditText tv;private Button underline_btn;private Button strike_btn;private Button style_btn;private Button font_btn;private Button color_btn1;private Button color_btn2;private Button url_btn;private Button image_btn;/** Called when the activity is first created. */@Overridepublic void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_spanable_string); tv = (EditText) this.findViewById(R.id.tv); underline_btn = (Button) this.findViewById(R.id.underline_btn); strike_btn = (Button) this.findViewById(R.id.strike_btn); style_btn = (Button) this.findViewById(R.id.style_btn); font_btn = (Button) this.findViewById(R.id.font_btn); color_btn1 = (Button) this.findViewById(R.id.color_btn1); color_btn2 = (Button) this.findViewById(R.id.color_btn2); url_btn = (Button) this.findViewById(R.id.url_btn); image_btn = (Button) this.findViewById(R.id.image_btn); underline_btn.setOnClickListener(this); strike_btn.setOnClickListener(this); style_btn.setOnClickListener(this); font_btn.setOnClickListener(this); color_btn1.setOnClickListener(this); color_btn2.setOnClickListener(this); url_btn.setOnClickListener(this); image_btn.setOnClickListener(this);}@Overridepublic void onClick(View v) { switch (v.getId()) { case R.id.underline_btn: addUnderLineSpan(); break; case R.id.strike_btn: addStrikeSpan(); break; case R.id.style_btn: addStyleSpan(); break; case R.id.font_btn: addFontSpan(); break; case R.id.color_btn1: addForeColorSpan(); break; case R.id.color_btn2: addBackColorSpan(); break; case R.id.url_btn: addUrlSpan(); break; case R.id.image_btn:// addImageSpan(); break; }}/*** 超链接*/private void addUrlSpan() { SpannableString spanString = new SpannableString("超链接"); URLSpan span = new URLSpan("tel:0123456789"); spanString.setSpan(span, 0, 3, Spannable.SPAN_EXCLUSIVE_EXCLUSIVE); tv.append(spanString);}/*** 文字背景颜色*/private void addBackColorSpan() { SpannableString spanString = new SpannableString("颜色2"); BackgroundColorSpan span = new BackgroundColorSpan(Color.YELLOW); spanString.setSpan(span, 0, 3, Spannable.SPAN_EXCLUSIVE_EXCLUSIVE); tv.append(spanString);}/*** 文字颜色*/private void addForeColorSpan() { SpannableString spanString = new SpannableString("颜色1"); ForegroundColorSpan span = new ForegroundColorSpan(Color.BLUE); spanString.setSpan(span, 0, 3, Spannable.SPAN_EXCLUSIVE_EXCLUSIVE); tv.append(spanString);}/*** 字体大小*/private void addFontSpan() { SpannableString spanString = new SpannableString("36号字体"); AbsoluteSizeSpan span = new AbsoluteSizeSpan(36); spanString.setSpan(span, 0, 5, Spannable.SPAN_EXCLUSIVE_EXCLUSIVE); tv.append(spanString);}/*** 粗体,斜体*/private void addStyleSpan() { SpannableString spanString = new SpannableString("BIBI"); StyleSpan span = new StyleSpan(Typeface.BOLD_ITALIC); spanString.setSpan(span, 0, 2, Spannable.SPAN_EXCLUSIVE_EXCLUSIVE); tv.append(spanString);}/*** 删除线*/private void addStrikeSpan() { SpannableString spanString = new SpannableString("删除线"); StrikethroughSpan span = new StrikethroughSpan(); spanString.setSpan(span, 0, 3, Spannable.SPAN_EXCLUSIVE_EXCLUSIVE); tv.append(spanString);}/*** 下划线*/private void addUnderLineSpan() { SpannableString spanString = new SpannableString("下划线"); UnderlineSpan span = new UnderlineSpan(); spanString.setSpan(span, 0, 3, Spannable.SPAN_EXCLUSIVE_EXCLUSIVE); tv.append(spanString);}效果图如下:
0 0
- 使用SpannableString实现字体的各种效果
- SpannableString 实现TextView的各种绚丽效果
- TextView中设置不同的字体属性(SpannableString实现)
- TextView和SpannableString实现图文混排的效果
- SpannableString实现同一段文字不同的效果
- 实现字体的阴影效果
- 使用SpannableString类处理TextView中的字体
- SpannableString 的使用
- SpannableString的使用
- 关于SpannableString的使用
- TextView 的SpannableString使用
- android SpannableString的使用
- SpannableString的使用
- SpannableString的属性使用
- spannableString的使用
- SpannableString的使用
- SpannableString的使用
- Android SpannableString的使用
- javascript实现全选/取消全选,反选/取消反选
- 大文件下载之RandomAccessFile
- 邮件的发送与接收原理
- js三级联动代码
- 一般项目的CSS规范
- 使用SpannableString实现字体的各种效果
- 亚马逊一道智力面试题
- ubuntu上搭建pppoeServer
- 华为公有云接口的问题
- Linux系统中环境变量
- Scala var && val
- 使用Retrofit搭建自己的网络请求框架
- 深入理解BootStrap -- 表格4
- 关于使用featurecursor.updatefeature批量更新要素时遇到的问题