Android TextView修改文字样式

一、 引出CharSequence接口

TextView.setText(CharSequence);

二、实现CharSequence接口

SpannableString、SpannableStringBuilder实现此接口,但是二者的区别是?

三、例子

String text = "Love_World_";

SpannableString style = new SpannableString(text);

style.setSpan(new ForegroundColorSpan(Color.RED),0,5,Spannable.SPAN_EXCLUSIVE_INCLUSIVE);

textView.setText(style);

四、Spannable 接口能力

SpannableString、SpannableStringBuilder这两个类同样实现Spannable接口,根据以上例子,查看下Spannable.setSpan方法

public void setSpan(Object what, int start, int end, int flags);

此方法有4个参数,其中第二个与第三个是需要设置样式的文字在字符串中的起止位置。

以下注重介绍下第一个参数,接收对象时Object,其支持的所有样式可以在官方文档查询http://developer.android.com/reference/android/text/style/package-summary.html

里面大多都是针对API LEVEL 1的,仅有API LEVEL 14新增 EasyEditSpan、SuggestionSpan, API LEVEL 17新增 LocaleSpan 、API LEVEL 21新增TtsSpan

ForegroundColorSpan指定文字颜色传入的参数有以下四种写法,其中需要注意的是第一种方式0x后面一定紧跟两个ff表示透明度的,没有会被解析为00即透明看不到效果。

new ForegroundColorSpan (0xffeeeeee) // 必须有ff 透明值

new ForegroundColorSpan (Color. parseColor("#eeeeee" ))

new ForegroundColorSpan (Color.RED)

new ForegroundColorSpan (getResources().getColor(r.color.name))

字体TypefaceSpan、添加删除线StrikethroughSpan、设置字体TypefaceSpan

参考资料:

http://blog.csdn.net/hitlion2008/article/details/6856780

时间: 2024-10-11 17:35:32

Android TextView修改文字样式的相关文章

Android TextView 实现文字大小不同和文字颜色不同

效果图如下: 关键代码如下: StringBuffer sb = new StringBuffer(); if(day > 0) { sb.append("<a href=\"1\">"); sb.append(""+day); sb.append("</a>"); sb.append(""+Global.getString(R.string.unit_Day2)); } sb

Android TextView自动换行文字排字参差不齐的原因及处理

Android TextView自动换行文字排版参差不齐的原因及处理 转自: TextView会自动换行,而且排版文字参差不齐.查了下资料,总结原因如下: 1.半角字符与全角字符混乱所致:这种情况一般就是汉字与数字.英文字母混用 解决方法一: 将textview中的字符全角化.即将所有的数字.字母及标点全部转为全角字符,使它们与汉字同占两个字节,这样就可以避免由于占位导致的排版混乱问题了. 半角转为全角的代码如下,只需调用即可.public static String ToDBC(String

android textView 替文字添加下划线 删除线

android textView 为文字添加下划线 删除线android textview 添加下划线 中划线 删除线tv=(TextView)findViewById(R.id.tvId);tv.getPaint().setFlags(Paint.STRIKE_THRU_TEXT_FLAG); //删除线//Paint.UNDERLINE_TEXT_FLAG 下划线 XAMARIN: TextView text = FindViewById<TextView>(Resource.Id.xxx

Android TextView自动换行文字排版参差不齐的原因

今天项目没什么进展,公司后台出问题了.看了下刚刚学习Android时的笔记,发现TextView会自动换行,而且排版文字参差不齐.查了下资料,总结原因如下: 1.半角字符与全角字符混乱所致:这种情况一般就是汉字与数字.英文字母混用 解决方法一: 将textview中的字符全角化.即将所有的数字.字母及标点全部转为全角字符,使它们与汉字同占两个字节,这样就可以避免由于占位导致的排版混乱问题了. 半角转为全角的代码如下,只需调用即可. public static String ToDBC(Strin

Android TextView部分文字实现点击事件

This is the class for text whose content and markup can both be changed. (这是一个内容和标记都可以更改的文本类) 快速实现 直接看代码: @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); TextV

android:TextView实现文字走马灯效果(欺骗系统获取持久的焦点)

通常情况下我们想实现文字的走马灯效果需要在xml文件中这样设置 <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:singleLine="true" android:ellipsize="marquee" android:focusable="true" android:

Android TextView中文字通过SpannableString来设置超链接、颜色、字体等属

在Android中,TextView是我们最常用的用来显示文本的控件. 一般情况下,TextView中的文本都是一个样式.那么如何对于TextView中各个部分的文本来设置字体,大小,颜色,样式,以及超级链接等属性呢?下面我们通过SpannableString的具体实例操作来演示一下. res-layout-main.xml <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:and

Android TextView中文字设置超链接、颜色、字体

TextView是用来显示文本的,有时需要给TextView中的个别字设置为超链接,或者设置个别字的颜色.字体等,那就需要用到Spannable对象,可以借助Spannable对象实现以上设置. 效果图: Activity代码: import android.app.Activity; import android.graphics.Color; import android.os.Bundle; import android.text.Spannable; import android.tex

Android TextView 设置文字间距

搜索结果都不靠谱,基本上都说是android:textScaleX可以设置文字间距,也不知道你们到底有没有真正做过开发. Android开发文档里描述的很清楚: android:textScaleX Sets the horizontal scaling factor for the text. 这个东西是用来设置水平方向的文字放大和缩小的. 其实设置文字间距可以通过修改string.xml里的字符,在其中添加空格来实现. 但是在字符串中直接输入空格达不到想要的效果,这就需要使用转义字符来进行转