textview从字面翻译就可以看出这是一个显示文本的基本控件,主要是在xml文件里定义属性用于完美展示
id:为TextView设置一个组件id,根据id,我们可以在Java代码中通过findViewById()的方法获取到该对象,然后进行相关属性的设置,又或者使用RelativeLayout时,参考组件用的也是id!
layout_width:组件的宽度,一般写:wrap_content或者match_parent(fill_parent),前者是控件显示的内容多大,控件就多大,而后者会填满该控件所在的父容器;当然也可以设置成特定的大小,比如我这里为了显示效果,设置成了200dp。
layout_height:组件的宽度,内容同上。
gravity:设置控件中内容的对齐方向,TextView中是文字,ImageView中是图片等等。
text:设置显示的文本内容,一般我们是把字符串写到string.xml文件中,然后通过@String/xxx取得对应的字符串内容的,这里为了方便我直接就写到""里,不建议这样写!!!
textColor:设置字体颜色,同上,通过colors.xml资源来引用,别直接这样写!
textStyle:设置字体风格,三个可选值:normal(无效果),bold(加粗),italic(斜体)
textSize:字体大小,单位一般是用sp!
background:控件的背景颜色,可以是颜色值,图片,shape等
**shadowColor: **设置阴影颜色,需要与shadowRadius一起使用哦!
shadowRadius: 设置阴影的模糊程度,设为0.1就变成字体颜色了,建议使用3.0
shadowDx: 设置阴影在水平方向的偏移,就是水平方向阴影开始的横坐标位置
shadowDy: 设置阴影在竖直方向的偏移,就是竖直方向阴影开始的纵坐标位置
drawableXxx ****drawableTop(上),drawableButtom(下),drawableLeft(左),drawableRight(右)设置四个方向的图片
**drawablePadding **设置图片与文字间的间距
**autoLink **点击跳转到web phone等,选择all可自动解析跳转
**singleLine ** 是否自动换行
**lineSpacingExtra **设置行间距,用dp来表示
**lineSpacingMultiplier **设置行间距的倍数
以上这些都是可以直接在xml里进行设置的,还有某些特性不能在xml里进行设置,只能在java代码中进行设置:
1、富文本:
通过使用HTML标签进行文字颜色大小等设置
<font>:设置颜色和字体。
<big>:设置字体大号
<small>:设置字体小号
<i><b>:斜体粗体
<a>:连接网址
<img>:图片
String string = "<font color='blue'><b>测试的内容~:</b></font><br>";
textView.setText(Html.fromHtml(string));
2、SpannableString&SpannableStringBuilder定制文本
SpannableString和SpannableStringBuilder,前者针对的是不可变文本,而后者则是针对可变文本
BackgroundColorSpan 背景色
ClickableSpan 文本可点击,有点击事件
ForegroundColorSpan 文本颜色(前景色)
MaskFilterSpan 修饰效果,如模糊(BlurMaskFilter)、浮雕(EmbossMaskFilter)
MetricAffectingSpan 父类,一般不用
RasterizerSpan 光栅效果
StrikethroughSpan 删除线(中划线)
SuggestionSpan 相当于占位符
UnderlineSpan 下划线
AbsoluteSizeSpan 绝对大小(文本字体)
DynamicDrawableSpan 设置图片,基于文本基线或底部对齐。
ImageSpan 图片
RelativeSizeSpan 相对大小(文本字体)
ReplacementSpan 父类,一般不用
ScaleXSpan 基于x轴缩放
StyleSpan 字体样式:粗体、斜体等
SubscriptSpan 下标(数学公式会用到)
SuperscriptSpan 上标(数学公式会用到)
TextAppearanceSpan 文本外貌(包括字体、大小、样式和颜色)
TypefaceSpan 文本字体
URLSpan 文本超链接
对于textview中某些文字的点击事件,请参考:http://www.jianshu.com/p/bba2103eaad2