一、在开发中可能会涉及到对于组件的字体或文本的字体的修改,可以通过Spannable来进行修改字体:
TextView tv = new TextView(this);
tv.setText("字体大小进行设置");
// 创建Spannable对象
Spannable span = new SpannableString(tv.getText());
/* 通过setSpan(Object ,int start,int end,int flag)对特定的内容进行设置
* 其中AbsoluteSizeSpan是决定字体大小
*/
span.setSpan(new AbsoluteSizeSpan(11),0,2,Spannable.SPAN_EXCLUSIVE_EXCLUSIVE);
span.setSpan(new AbsoluteSizeSpan(21),3,6,Spannable.SPAN_EXCLUSIVE_EXCLUSIVE);
tv.setText(span);
二、在Android TextView中有个内容过长加省略号的属性,即ellipsize,用法如下
在xml中:
android:ellipsize = "end" 省略号在结尾
android:ellipsize = "start" 省略号在开头
android:ellipsize = "middle" 省略号在中间
android:ellipsize = "marquee" 跑马灯
最好加一个约束android:singleline = "true"
也可以用代码语句
tv.setEllipsize(TextUtils.TruncateAt.valueOf("END"));
tv.setEllipsize(TextUtils.TruncateAt.valueOf("START"));
tv.setEllipsize(TextUtils.TruncateAt.valueOf("MIDDLE"));
tv.setEllipsize(TextUtils.TruncateAt.valueOf("MARQUEE"));
最好再加一个约束tv.setSingleLine(true);
不仅对于textview有此属性,对于editext也有,不过它不支持marquee
三、TextView设置中文粗体
在xml布局文件中设置android:textStyle="bold"可以将英文字母和阿拉伯数字设置成粗体,对中文不起作用。
将中文设置成粗体的方法是: