给TextView设置Span
来源:互联网 发布:光明骑士和游侠数据 编辑:程序博客网 时间:2024/06/16 19:12
package com.home.util;import android.content.Context;import android.graphics.Typeface;import android.graphics.drawable.Drawable;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.ImageSpan;import android.text.style.StrikethroughSpan;import android.text.style.StyleSpan;import android.text.style.UnderlineSpan;import android.widget.TextView;public class TextViewUtil {private static final String MARK = "\u3000";/** * 设置首行缩进n个字符 * * @param textView * 文本框 * @param num * 缩进个数 * @param text * 文本内容 */public static void setIndent(TextView textView, int num, String text) {String first = "";for (int i = 0; i < num; i++) {first = first + MARK;}textView.setText(first + text);}/** * 设置部分文本字体颜色值 * * @param textView * 文本框 * @param text * 文本内容 * @param start * 设置的文本起点 * @param end * 设置的文本终点 * @param colorId * 颜色值ID */public static void setPartTextColor(TextView textView, String text,int start, int end, int colorId) {SpannableString ss = new SpannableString(text);ss.setSpan(new ForegroundColorSpan(colorId), start, end,Spannable.SPAN_EXCLUSIVE_EXCLUSIVE);textView.setText(ss);}/** * 设置部分文本背景颜色值 * * @param textView * 文本框 * @param text * 文本内容 * @param start * 设置的文本起点 * @param end * 设置的文本终点 * @param colorId * 颜色值ID */public static void setPartBackgroundColor(TextView textView, String text,int start, int end, int colorId) {SpannableString ss = new SpannableString(text);ss.setSpan(new BackgroundColorSpan(colorId), start, end,Spannable.SPAN_EXCLUSIVE_EXCLUSIVE);textView.setText(ss);}/** * 设置部分文本大小 * * @param textView * 文本框 * @param text * 文本内容 * @param start * 设置的文本起点 * @param end * 设置的文本终点 * @param size * 字体绝对值大小 */public static void setPartTextSize(TextView textView, String text,int start, int end, int size) {SpannableString ss = new SpannableString(text);ss.setSpan(new AbsoluteSizeSpan(size), start, end,Spannable.SPAN_EXCLUSIVE_EXCLUSIVE);textView.setText(ss);}/** * 设置图片 * * @param context * 上下文对象 * @param textView * 文本框 * @param bitmapText * 图片的文本标示 * @param resId * 图片资源id */public static void setImage(Context context, TextView textView,String bitmapText, int resId) {ImageSpan imageSpan = new ImageSpan(context, resId);SpannableString ss = new SpannableString(bitmapText);ss.setSpan(imageSpan, 0, bitmapText.length(),Spannable.SPAN_EXCLUSIVE_EXCLUSIVE);textView.append(ss);}/** * 设置图片(指定同样的宽和高) * * @param context * 上下文对象 * @param textView * 文本框 * @param bitmapText * 图片的文本标示 * @param resId * 图片资源id * @param size * 设置显示的图片尺寸 */public static void setImage(Context context, TextView textView,String bitmapText, int resId, int size) {SpannableString ss = new SpannableString(bitmapText);Drawable drawable = context.getResources().getDrawable(resId);drawable.setBounds(0, 0, size, size);// 这里设置图片的大小ImageSpan imageSpan = new ImageSpan(drawable, ImageSpan.ALIGN_BASELINE);ss.setSpan(imageSpan, 0, bitmapText.length(),Spannable.SPAN_EXCLUSIVE_EXCLUSIVE);textView.append(ss);}/** * 设置图片(指定宽和高) * * @param context * 上下文对象 * @param textView * 文本框 * @param bitmapText * 图片的文本标示 * @param resId * 图片资源id * @param width * 显示的宽 * @param height * 显示的高 */public static void setImage(Context context, TextView textView,String bitmapText, int resId, int width, int height) {SpannableString ss = new SpannableString(bitmapText);Drawable drawable = context.getResources().getDrawable(resId);drawable.setBounds(0, 0, width, height);ImageSpan imageSpan = new ImageSpan(drawable, ImageSpan.ALIGN_BASELINE);ss.setSpan(imageSpan, 0, bitmapText.length(),Spannable.SPAN_EXCLUSIVE_EXCLUSIVE);textView.append(ss);}/** * 设置部分文本字体风格 * * @param context * 上下文对象 * @param textView * 文本框 * @param text * 文本内容 * @param start * 设置的文本起点 * @param end * 设置的文本终点 * @param style * 字体风格(Typeface的枚举) */public static void setPartTypeface(Context context, TextView textView,String text, int start, int end, int style) {SpannableString ss = new SpannableString(text);ss.setSpan(new StyleSpan(style), start, end,Spannable.SPAN_EXCLUSIVE_EXCLUSIVE);textView.setText(ss);}/** * 将部分文本设置为粗体 * * @param context * 上下文对象 * @param textView * 文本框 * @param text * 文本内容 * @param start * 设置的文本起点 * @param end * 设置的文本终点 */public static void setPartBold(Context context, TextView textView,String text, int start, int end) {setPartTypeface(context, textView, text, start, end, Typeface.BOLD);}/** * 将部分文本设置为斜体 * * @param context * 上下文对象 * @param textView * 文本框 * @param text * 文本内容 * @param start * 设置的文本起点 * @param end * 设置的文本终点 */public static void setPartItalic(Context context, TextView textView,String text, int start, int end) {setPartTypeface(context, textView, text, start, end, Typeface.ITALIC);}/** * 将部分文本设置为粗斜体 * * @param context * 上下文对象 * @param textView * 文本框 * @param text * 文本内容 * @param start * 设置的文本起点 * @param end * 设置的文本终点 */public static void setPartBoldAndItalic(Context context, TextView textView,String text, int start, int end) {setPartTypeface(context, textView, text, start, end,Typeface.BOLD_ITALIC);}/** * 设置部分文本删除线 * * @param context * 上下文对象 * @param textView * 文本框 * @param text * 文本内容 * @param start * 设置的文本起点 * @param end * 设置的文本终点 */public static void setPartStrikethrough(Context context, TextView textView,String text, int start, int end) {SpannableString ss = new SpannableString(text);ss.setSpan(new StrikethroughSpan(), start, end,Spannable.SPAN_EXCLUSIVE_EXCLUSIVE);textView.setText(ss);}/** * 设置部分文本下划线 * * @param context * 上下文对象 * @param textView * 文本框 * @param text * 文本内容 * @param start * 设置的文本起点 * @param end * 设置的文本终点 */public static void setPartUnderLine(Context context, TextView textView,String text, int start, int end) {SpannableString ss = new SpannableString(text);ss.setSpan(new UnderlineSpan(), start, end,Spannable.SPAN_EXCLUSIVE_EXCLUSIVE);textView.setText(ss);}}
0 0
- 给TextView设置Span
- 如何给Span设置宽度
- 给span 标签设置宽度
- TextView中设置Span的源码浅析
- 给HTML的span设置值
- 通过Span设置TextView中字体的样式、大小
- 给span设置高度遇到的情况及说明
- Android给TextView,EditText等设置边框
- Android给TextView,EditText等设置边框
- 给textview设置文字旁边的图片
- 获取当前时间设置给textview
- 给textview设置上下右边框
- 8.给TextView及其子类设置图片
- 给li标签中的span设置属性margin-bottom不生效
- CISCO 交换机 SPAN设置
- 设置span宽度,详细资料....
- span 设置width
- span如何设置width
- Hadoop与Spark常用配置参数总结
- AngularJS报错 $digest already in progress
- Swift语言中的协议
- Android Studio 获取数字签名信息
- SQL SERVER中强制类型转换cast和convert的区别
- 给TextView设置Span
- Table布局
- Python篇----命令行调用、输出log日志并打包的脚本
- OM-Internal Sales Order (ISO) Process Flow
- Unity 基础 场景切换
- 华为机试——最高出现频率字符
- mysql权限丢失
- mysql中的结果拼接
- easyui的datagrid中editor和combogrid的结合使用