控件属性
一、TextView
| 属性名 | 功能 |
|---|---|
| android:text | 设置文本文字的 |
| android:textColor | 设置文本文字颜色 |
| android:gravity | 设置控件对齐的方向 |
| textStyle | 设置字体的风格:bold(加粗),italic(斜体) |
| android:shadowColor | 设置阴影颜色,需要与shadowRadius一起使用哦! |
| android:shadowRadius: | 设置阴影的模糊程度,设为0.1就变成字体颜色了,建议使用3.0 |
| android:shadowDx: | 设置阴影在水平方向的偏移,就是水平方向阴影开始的横坐标位置 |
| android:shadowDy: | 设置阴影在竖直方向的偏移,就是竖直方向阴影开始的纵坐标位置 |
1.2、边框设置
<solid android:color=#fff />设置背景颜色
<stroke android:width="6dp" android:color="#f0f" />设置边框的粗细和边框的颜色
<padding android:bottom="3dp" />设置边距
<corners android: />设置圆角
<gradient >设置渐变色:
1.可选属性有:startColor:开始的颜色,endColor:结束的颜色,centerColor:中间的颜色。
2.angle:方向角度,等于0时,从左到右,然后逆时针方向转,当angle=90度时从下往上。
3.type:设置渐变的类型
注意:【android:angle】里面的值就是所需要旋转的角度,只是这个旋转角度必须是45的整数倍。
1.3、带图片的TextView
android:drawableTop="@drawable/ic_launcher_foreground"
android:drawableLeft="@drawable/ic_launcher_background"
android:drawableRight="@mipmap/ic_launcher"
android:drawableBottom="@mipmap/ic_launcher_round"
android:drawablePadding="10dp"
*在MainActivity设置属性*
// 设置可绘制的,获取复合绘图
Drawable[] drawables=textView.getCompoundDrawables();
// 设定界限
drawables[0].setBounds(0,0,100,100);
drawables[1].setBounds(0,0,100,100);
drawables[2].setBounds(0,0,100,100);
drawables[3].setBounds(0,0,100,100);
// 设置复合可绘制对象
textView.setCompoundDrawables(drawables[0],drawables[1],drawables[2],drawables[3]);
1.4、标签设置
图片标签
TextView textView2=findViewById(R.id.textview2);
String s="图片:<img src='img' />";
textView2.setText(Html.fromHtml(s, new Html.ImageGetter() {
@Override
public Drawable getDrawable(String s) {
Drawable draw=null;
try {
Field field=R.drawable.class.getField(s);
int resour=Integer.parseInt(field.get(null).toString());
draw=getResources().getDrawable(resour);
draw.setBounds(0,0,draw.getIntrinsicWidth(),draw.getIntrinsicHeight());
} catch (Exception e) {
e.printStackTrace();
}
return draw;
}
},null));
超链接标签
private void initView2() {
TextView textView2=findViewById(R.id.textview2);
String s="<font color='blue'><i>百度下</i></font></br>";
s+="<a href='http://www.baidu.com'>百度</a>";
textView2.setText(Html.fromHtml(s));
// 通过方法实例点击a标签跳转到相应网页
textView2.setMovementMethod(LinkMovementMethod.getInstance());
}
1.5、SpannableString&SpannableStringBuilder定制文本
SpannableString常用API
| 属性 | 功能 |
|---|---|
| BackgroundColorSpan | 背景颜色 |
| ClickableSpan | 设置文本可点击事件 |
| ForegroundColorSpan | 文本颜色 |
| MaskFilterSpan | 父类,一般不可用 |
| RasterizerSopan | 光栅效果 |
| StrikethroughSpan | 删除线 |
| SuggestionSpan | 相当于占位符 |
| UnderlineSpan | 下划线 |
| AbsoluteSizeSopan | 绝对大小(文本字体) |
| DynamicDrawableSpan | 设置图片,基于文本基线或底部对 |
| ImageSpan | 图片 |
| RelativeSizeSpan | 相对大小(文本字体) |
| ReplacementSpan | 父类,一般不用 |
| ScaleXSpan | 基于x轴缩放 |
| StyleSpan | 字体样式:粗体、斜体等 |
| SubscriptSpan | 下标(数学公式会用到 |
| SuperscriptSpan | 上标(数学公式会用到) |
| TextAppearanceSpan | 文本外貌(包括字体、大小、样式和颜色) |
| TypefaceSpan | 文本字体 |
| URLSpan | 文本超链接 |
通过java代码控制需要的文本高亮已经其他设置
private void initViewt1() {
SpannableString span = new SpannableString("爱上对方过后就哭了,离开就会国防大,不哈是否会市司法局你快喝司法解释放暑假");
// 设置字体颜色,setSpan指定那个字体
span.setSpan(new ForegroundColorSpan(Color.RED), 1, 5, Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);
// 用超链接标记文本
span.setSpan(new URLSpan("tel:52170"), 5, 8, Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);
//3.用样式标记文本(斜体)
span.setSpan(new StyleSpan(Typeface.BOLD_ITALIC), 8, 12, Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);
//4.用删除线标记文本
span.setSpan(new StrikethroughSpan(), 12, 15, Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);
// 5.用下划线标记文本
span.setSpan(new UnderlineSpan(), 15, 18, Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);
//6.用颜色标记
span.setSpan(new ForegroundColorSpan(Color.GREEN), 18, 23, Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);
//7.//获取Drawable资源
Drawable d = getResources().getDrawable(R.drawable.ic_launcher_background);
d.setBounds(0, 0, d.getIntrinsicWidth(), d.getIntrinsicHeight());
//8.创建ImageSpan,然后用ImageSpan来替换文本
ImageSpan imgspan = new ImageSpan(d, ImageSpan.ALIGN_BASELINE);
span.setSpan(imgspan, 23, 28, Spannable.SPAN_INCLUSIVE_EXCLUSIVE);
t1.setText(span);
}
跑马灯效果
<TextView
android:id="@+id/textView3"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:textSize="18sp"
android:singleLine="true"
android:ellipsize="marquee"
android:marqueeRepeatLimit="marquee_forever"
android:focusable="true"
android:lineSpacingExtra="13dp"
android:text="你整天说着日了狗日了狗,但是你却没有来,呵呵呵你整天说着日了狗日了狗呵呵呵你整天说着日了狗日了狗呵呵呵呵~" />
总结:通过这次的学习让我认识到了一个简单的控件居然可以做这么多事,我相信只要每天学习一点那么,到最后我们在将它整合汇聚起来,这将是一条走向成功的道路,古话说:读千里书,行万里路。只有坚持不懈的努力,一复一日的学习才能修成正果。