了解几个单位:
dp(dip):
设备独立像素,不同设备有不同的显示效果,这个和设备硬件有关,一般我们为了支持WVGA、HVGA和QVGA 推荐使用这个,不依赖像素,一般我们设置控件宽高的时候不直接设置为多少像素(px),设置为dp,这个谷歌专门为适应不同手机像素设计的一个单位,保证在不同像素手机上显示视图相同。
px:
pixels(像素). 不同设备显示效果相同,一般我们HVGA代表320x480像素,这个用的比较多。
pt:
point,是一个标准的长度单位,1pt=1/72英寸,用于印刷业,非常简单易用;
sp:
scaled pixels(放大像素). 主要用于字体显示best for textsize,注意一点,如果你修改系统文字大小,应用中使用sp做单位的字体都会跟随系统文字大小变化,如果以dp为单位(字体单位可以为dp),文字大小不会随系统文字大小变化。
带阴影的TextView
android:shadowColor:设置阴影颜色,需要与shadowRadius一起使用哦!
android:shadowRadius:设置阴影的模糊程度,设为0.1就变成字体颜色了,建议使用3.0
android:shadowDx:设置阴影在水平方向的偏移,就是水平方向阴影开始的横坐标位置
android:shadowDy:设置阴影在竖直方向的偏移,就是竖直方向阴影开始的纵坐标位置
带图片(drawableXxx)的TextView
设置图片的核心其实就是:drawableXxx;可以设置四个方向的图片:drawableTop(上),drawableButtom(下),drawableLeft(左),drawableRight(右)另外,你也可以使用drawablePadding来设置图片与文字间的间距!但是你会发现无法设置图片的大小,这个就需要通过java代码来设置。
private TextView txtZQD = (TextView) findViewById(R.id.txtZQD);
Drawable[] drawable = txtZQD.getCompoundDrawables();
// 数组下表0~3,依次是:左上右下
drawable[1].setBounds(100, 0, 200, 200);
txtZQD.setCompoundDrawables(drawable[0], drawable[1], drawable[2], drawable[3]);
--coder-pig
代码分析
①Drawable[] drawable =txtZQD.getCompoundDrawables();
获得四个不同方向上的图片资源,数组元素依次是:左上右下的图片
②drawable1.setBounds(100, 0, 200, 200);
接着获得资源后,可以调用setBounds设置左上右下坐标点,比如这里设置了代表的是:
长是:从离文字最左边开始100dp处到200dp处
宽是:从文字上方0dp处往上延伸200dp!
③txtZQD.setCompoundDrawables(drawable[0], drawable1, drawable2,
drawable3);为TextView重新设置drawable数组!没有图片可以用null代替哦!
PS:另外,从上面看出我们也可以直接在Java代码中调用setCompoundDrawables为TextView设置图片!
--coder-pig
使用autoLink属性识别链接类型选项包括:
none,web,email,phone,map,all
all就是全部都包含,自动识别协议头~
在Java代码中可以调用setAutoLinkMask(Linkify.ALL);
这个时候可以不写协议头,autolink会自动识别,但是还要为这个TextView设置:
setMovementMethod(LinkMovementMethod.getInstance()); 不然点击了是没效果的!
TextView与HTML
SpannableString&SpannableStringBuilder定制文本显示样式
TextView字间距和行间距
字间距:
android:textScaleX:调节字间距的,默认值1.0f,值是float
Java中setScaleX(2.0f);
行间距:
android:lineSpacingExtra:设置行间距,如”3dp”
android:lineSpacingMultiplier:设置行间距的倍数,如”1.2”
Java代码中可以通过:
setLineSpacing方法来设置
单行
android:singleLine = “ture”