目录
说明
textview用的特别多,所以使用的方式也很多,这里选择七种初步认识textView的基本用法。
省略样式
属性 | 效果 |
---|---|
end | 结尾省略 |
start | 开头省略 |
middle | 中间省略 |
none | 不省略 |
marquzz | 帮助设置跑马灯效果 |
示例代码
android:ellipsize="end"
跑马灯示例
xml
android:ellipsize="marquee"
android:marqueeRepeatLimit="marquee_forever"
设置选中
txt = findViewById(R.id.txt);
txt.setSelected(true);
自动链接
设置autolink属性 自动识别字符串内容中对应的字段
<TextView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:id="@+id/txt"
android:textSize="20sp"
android:autoLink="email"
android:text="我的邮箱 2xxxxxxxxx@qq.com"/>
行高控制
属性 | 含义 |
---|---|
lineSpacingMultiplier | 0时,lineSpacingExtra的值=行间距+字高度(脑补) |
lineSpacingExtra | 行高 |
layout_height | 行数*行高 |
paddingTop | (行高-字高)/2 |
paddingBottom | (行高-字高)/2 |
textSize | 字高(通常1sp=1dp) |
android:lineSpacingMultiplier="0"
android:layout_height="200dp"
android:paddingTop="15dp"
android:paddingBottom="15dp"
android:lineSpacingExtra="50dp"
android:textSize="20sp"
阴影效果
属性 | 含义 |
---|---|
shadowColor | 阴影颜色 |
shadowRadius | 阴影半径,越大阴影越模糊 |
shadowDx | 阴影相对于原文本横向相对距离 |
shadowDy | 阴影相对于原文本纵向相对距离 |
android:shadowColor="#ff000000"
android:shadowRadius="10"
android:shadowDx="30"
android:shadowDy="30"
自定义字体
Android 8.0之前
1.建立assets文件夹,放入字体文件
2.使用代码
Typeface typeFace = Typeface.createFromAsset(getAssets(), "huawenhupo.ttf");
txt.setTypeface(typeFace);
Android 8.0之后
1.res下建立font文件夹,放入字体文件
2.使用代码,设置fontFamily
<TextView
android:id="@+id/txt"
android:layout_width="100dp"
android:layout_height="50dp"
android:fontFamily="@font/huawenhupo"
android:gravity="center_horizontal"
android:text="主页" />
中间可点击
SpannableString spannableString = new SpannableString("测试《可点击文字》");
spannableString.setSpan(new ClickableSpan() {
@Override
public void onClick(View view) {
Toast.makeText(TestDemo.this, "触发了点击事件", Toast.LENGTH_SHORT).show();
}
@Override
public void updateDrawState(TextPaint ds) {
ds.setColor(Color.RED);//设置字体颜色
ds.setUnderlineText(true);//设置没有下划线
}
}, 3, 7, Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);
txt.setText(spannableString);
txt.setHighlightColor(getResources().getColor(android.R.color.transparent));//去掉背景
txt.setMovementMethod(LinkMovementMethod.getInstance());//必须设置不然点击无效
图文混排
final String string = "<p><img alt=\"laugh\" height=\"23\" src=\"http://img3.imgtn.bdimg.com/it/u=3140599426,288343775&fm=26&gp=0.jpg\" " +
"title=\"laugh\" width=\"23\" /> 简单的图文混排" +
"<img alt=\"cheeky\" height=\"23\" src=\"http://img3.imgtn.bdimg.com/it/u=3140599426,288343775&fm=26&gp=0.jpg\" " +
"title=\"cheeky\" width=\"23\" />这是展示内容</p>";
final Html.ImageGetter imgGetter = new Html.ImageGetter() {
public Drawable getDrawable(String source) {
Drawable drawable = null;
URL url = null;
try {
url = new URL(source);
drawable = Drawable.createFromStream(url.openStream(), "img");
} catch (Exception e) {
return null;
}
drawable.setBounds(0, 0, drawable.getIntrinsicWidth(), drawable
.getIntrinsicHeight());
return drawable;
}
};
new Thread(new Runnable() {
@Override
public void run() {
final Spanned text = Html.fromHtml(string, imgGetter, null);
handler.post(new Runnable() {
@Override
public void run() {
txt.setText(text);
}
});
}
}).start();![无标题.png](https://upload-images.jianshu.io/upload_images/11678839-00c82a5383747958.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)